Read more »
Detect Shake in Phone using Jquery
Read more »
Consider you have an application which provides you an authentication cookie using ASP.NET Membership provider, and you are using this authentication cookie across multiple servers to access the secured contents. I have depicted this scenario using the diagram below.
Now to read the client cookies across the applications you can simple use the following line of line of code fetch the cookies
HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value;
But wait a minute, is it that simple? In fact yes except the fact that to secure your session and prevent from any men in the middle attacks your cookies are encrypted using the machine key of Authentication Server. Which might look similar to the one below. This is configured at your machine level, which means you may not usually find this key in your local web.config files.
<machineKey
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1" decryption="AES"/>
And also you might be aware that every machine has its own machine.config file which is tailored to that particular machine, so if the cookie is encrypted using the machine key of Server1 then it cannot be decrypted using machine key of Server2 or any other Server.
So even if you managed to get the cookie, but when you try to read the data from the cookie you must have to first decrypt the cookie in order to read any key from the cookie. I have provided below a sample code which exactly does the same.
private void SetFormsAuthenticationTicket()
{
FormsAuthenticationTicket ticket = default(FormsAuthenticationTicket);
if (System.Web.HttpContext.Current.Request.Cookies.Get(System.Web.Security.FormsAuthentication.FormsCookieName) != null)
{
ticket = System.Web.Security.FormsAuthentication.Decrypt(
System.Web.HttpContext.Current.Request.Cookies.Get(
System.Web.Security.FormsAuthentication.FormsCookieName).Value);
string[] roles = ticket.UserData.Split(new char[] { '|' });
GenericIdentity userIdentity = new GenericIdentity(ticket.Name);
GenericPrincipal userPrincipal = new GenericPrincipal(userIdentity, roles);
System.Web.HttpContext.Current.User = userPrincipal;
}
}
To get a better view I have also provided the screenshot of the code below.
This does solve your problem, but the when you try run the code you might get the following exception.
System.Web.HttpException : Unable to validate data. at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
This happens because as I mentioned above, your cookie was created by machine key of Server1, but some of the part of your application is served by Server2 which tries to decrypt the cookie using the code above. So to mitigate this issue first this you might need to do is to generate the machineKey which can be shared across all your applications who is sharing the cookies and located across your network. I have written a separate post on How to generate the machineKey using IIS 7.0+ you can visit the link: http://tutorials.indianjobs.co.in/2014/12/generate-machinekey-in-iis-70.html
Secondly you have to place the same decryptionKey in all your application local web.config, and you are done.
You might encounter this types of scenario is small scale applications, but for most of the complicated application these days where applications are placed on completely different domains, you will need to implement your own SSO architecture. Details are out of then scope of this article, so you might take a look for details in some other article such as Single Sign On (SSO) for cross-domain ASP.NET applications or Single Sign-On (SSO) for .NET or Using a third party identity provider like Facebook, Google, etc
References:
http://msdn.microsoft.com/en-us/library/ff649308.aspx
http://www.codeproject.com/Articles/288631/Secure-ASP-NET-MVC-applications
Normally machineKey is already configured in your machine.config file which is applied to all your application if you are working in the same Web Farm. But most of the time this may not be the scenario, it may be possible that your applications are distributed across different Web Farms.
To deal with this all you need is to configure the same decryption keys in web.config of all the applications to decrypt the authentication cookie created at client side.
To generate a new machine key all you need is to first open the IIS Admin Console, and
1. Select the Server
2. Select the Machine Key from right hand side of the console
3. Double Click to open the Machine Key and then Select ‘Generate Keys’ from Actions
4. You got the Decryption Key and Unique Key
You can use this Keys in you web.config file which might look similar to something like
In this post I am going to show a very simple yet very useful utility which everyone of us encounter when we get lots of unwanted mails which we had subscribed sometime in our web exploration but later we want to get rid of those subscribed mails. Moreover this is a very integral part of our business use cases.
I have used ASP.NET MVC as an example but if you understand the concept, this can be achieved using any of your favorite programming logic as well.
I tried to keep the example as simple as possible so that I can cover the concept/business logic in more details. In this example as soon as I run the application I will call the Index action method with my hardcoded email id. In real world you might want to make it more dynamic and will try to pass this as a parameter.
Now I have written a utility method which is used to generate the subscription link, which can be embedded in the marketing emails, so when the user click on this link Say Unsubscribe Me, he will land on the page where just in a click of button his mail id will be removed from the marketing email database.
For the simplicity sake of this example I have not used the real time database operations but for your implementation you will definitely need DB operation to update the user preferences.
Not let me highlight the most important logic of this GetUnSubscriptionLink method; since we are dealing with one key information of a user which is his email id, so I have used CryptoHelper utility which is used to Encrypt the email id of the consumer. This will also help us to filter any Brute force attack where the hacker will try to enter random emails on his list to invoke the unsubscribe methods.
You can download your copy of CryptoHelper utility from here: http://1drv.ms/1r2kisl
One of the example of the unsubscription link is shown in the screen below. For better programming practice you can configure the root URL in your config file.
Additionally you can do a second level of validation where you can prompt the end user to provide his email id in a text box and validate this against the decrypted string containing the email id from the query string, if both has a match then unsubscribe otherwise ignore the unsubscribe request.
In my example as soon as you pass all the validation I am calling the Unsubscribe action method of my controller which takes the encryptedText as a parameter and decode the text to unsubscribe the user from marketing emails.
Sample screen once the user is unsubscribed
I am providing below a utility Property which I found somewhere on internet, this might be very useful to you if you are playing with URL’s
Crypto Helper Utility: http://1drv.ms/1r2kisl
You can download the full working copy of this example from this link: http://1drv.ms/1vU5ZCO
Hope this helps, let me know in comments if you have any trouble in downloading the files or understanding my thoughts
You heard it right, this is for all the .NET Developers (other platform also welcome) who have ever wished to build an app using Apache Cordova that targets multiple mobile platforms: Android, iOS, Windows, and Windows Phone.
Disclaimer: All images are copyright to their respective owners.
I am going to show you a very simple mobile application which displays Hello World, using apache Cordova and Visual Studio 2013.
1. Setup the environment by installing the Preview of Visual Studio Tooling Support for Apache Cordova, you can download the CTP from here.
Visual Studio Tools for Apache Cordova
2. Once the installation is complete, run Visual Studio 2013 and create a new project. You need to go to Javascript templates or you can select the Multi device Hybrid App and click OK button. this will give you default project structure
3. For this post I am not going to explain all the files, rather I will go directly to my index.html and change the default text Hello World !!! and we are done.
4. And finally select the desired Emulators and run the program.
And here is the output, that’s it and you are done.
You can double click on config.xml file to customize the Custom and Core properties of your application individually for each platforms.
Hope this makes your life simple Enjoy.
Other helpful link:
http://msopentech.com/blog/2014/05/12/apache-cordova-integrated-visual-studio/
As of today, we are unifying our Contributor License Agreement (CLA) checking tool with the newly rolled out infrastructure for all Google open source projects. Just as before, a single CLA signature will enable you to contribute to any open source project from Google, but the new CLA bot is much faster, more reliable and can handle corporate CLAs better.
The new CLA signature repository requires a GitHub account to be linked with a Google account. In many but not all cases we were able to link the two accounts automatically. For those contributors where an automated match was not possible, we'll ask you to re-sign the CLA or add your GitHub username to your contact info the next time you send us a PR.
To check your CLA status you can visit https://cla.developers.google.com/clas. To see if your CLA is linked with a GitHub account please click on 'Edit Contact Information' next to a CLA record where you can check and edit your GitHub account name.
Once your GitHub account name is linked correctly, Googlebot will comment on your future PRs and give it the label 'CLA: yes' (see this PR for an "exemplary" conversation with Googlebot). If you already have an open PR that hasn't been verified, you will need to comment on it for Googlebot to re-verify your CLA.
We apologize for the inconvenience, but this stuff is important for the Angular project and the community that depends on it. Thanks and stay awesome!
A new feature released in Angular 1.3.0 is the accessibility module, ngAria. As someone involved in delivering this community-driven effort, I thought it might be helpful to introduce ngAria, a module which can improve the user experience for many people with disabilities.
In this post:
The goal of ngAria is to improve the default accessibility of Angular.js by enabling common ARIA attributes for directives. Using ngAria is as simple as requiring the ngAria module in your application. It then hooks silently into standard Angular.js directives and injects accessibility support into your application at runtime.
Currently, ngAria interfaces with the following directives: ngModel, ngShow, ngHide, ngDisabled, ngClick, ngDblclick and ngMessages. The list of supported attributes is currently limited; we are identifying additional ways the module can improve accessibility, described later on in this post.
Related reading: What is WAI-ARIA, what does it do for me, and what not?
By centralizing accessibility features into one module, they can be easily added and tested, allowing ngAria to grow over time. On the flip-side, automatic accessibility features are only added if the module is included, making it possible for accessibility to be forgotten—something we can’t continue to do as developers. When you include ngAria in your projects, you can improve the experience for many of your users without doing much at all. However, it’s important to inform yourself about ngAria’s capabilities and limitations so you know what it actually does to your code.
To learn how ngAria works with the directives listed above, explore the ngAria Developer Guide.
Many people in the world depend on assistive technologies such as screen readers, high contrast mode, braille keyboard support, closed captioning and more to use the web applications and services we take for granted. The popularity of MV* frameworks such as Angular.js has contributed many inaccessible web applications as our attention has gone to shinier topics such as mobile performance, databinding, automated tooling and ES6 support. We love to innovate the way we work, yet we forget basic things such as HTML semantics and supporting the keyboard.
In the past, Angular.js didn’t do much for accessibility–in fact, it made it more challenging by injecting attributes that didn’t work for accessibility, such as disabled
on a custom element directive like <md-checkbox>
.
See this rendered markup example:
<md-checkbox ng-model="someModel" ng-disabled="isDisabled" disabled>
Inaccessible Checkbox
</md-checkbox>
The above checkbox directive is inaccessible because it doesn't communicate anything to assistive technologies and it's inoperable from the keyboard. Although it's easy to use directives like ng-disabled
on non-semantic elements, this leaves us responsible to also manage ARIA by ourselves. A helpful framework would eliminate this kind of pain and do the heavy lifting where we needed it.
With the introduction of ngAria, common ARIA attributes are now handled by default when the module is included, helping to communicate the state of our application to users of assistive technologies.
Let's look at the same markup after ngAria has done its magic:
<md-checkbox ng-model="someModel" aria-disabled="true" tabindex="0">
Checkbox
</md-checkbox>
Note: this example also requires
role="checkbox"
andaria-label
to be accessible. In Angular Material, we handle this internally but those attributes could become managed by ngAria in the future.
Using ngAria is as simple as requiring the ngAria module in your application:
angular.module('myApp', ['ngAria'])...
After including the module, any directives in your code that ngAria is hooked into will be automatically fitted with ARIA attributes. To learn more about ngAria's effect on directives, check out the ngAria Developer Guide.
Because ngAria's attribute magic may not work for every scenario, you can opt out of specific ARIA attributes by configuring ngAria with $ariaProvider
:
angular.module('myApp', ['ngAria'], function config($ariaProvider) {
$ariaProvider.config({
tabindex: false
});
});
For the full list of configurable properties, visit the API Documentation for $ariaProvider.
A recent pull request for ngAria and ngMessages, the module for form validations, will improve accessibility by also reading errors aloud in a screen reader as they become visible. This functionality can be enabled by adding aria-live
to the ng-messages
directive. It's a simple way to expose dynamic content to assistive technologies and is a good example of the type of problem ngAria should help to solve.
To communicate better to assistive technologies, ngAria should add missing roles to non-semantic elements such as <md-checkbox>
and <div type="range">
. An issue has been filed to track these two small features and more will be added as they come up.
Early work has begun on a plugin system for Protractor that would allow automated integration testing for accessibility as well as ng-hint
. Rough ideas for automated testing include HTML hierarchy audits, keyboard operability tests, logs for missing labels and color contrast warnings. Catching accessibility issues before they are deployed gives you more time to fix them and is a lot more fun. Stay tuned for updates as we have them!
An ARIA service method in Angular Material aims to improve a common accessibility issue: forgotten labels, which add accessible names to elements for assistive technologies. For commonly mislabeled components, such as checkboxes or radio buttons, $mdAria
will attempt to copy text content to the aria-label
attribute. If no suitable text is found, a warning will be logged to the JavaScript console telling the developer they forgot a label for accessibility. We are fixing bugs with this utility as they come up and evaluating whether it could be useful in ngAria or ngHint.
Some other things we have discussed or proposed for Angular accessibility: warnings for missing alt
attributes, default keyboard bindings such as the escape key or question mark key, color contrast assessments and more. I'm excited to see this list grow as we dogfood ngAria on Angular Material and see it battle-tested in the community. If there are things you feel ngAria should do, please write about it in the comments or submit a pull request.
It is our responsibility as developers to build accessible, well-tested web applications. However, the frameworks we use should do as much as possible to improve accessibility by default. As a new module, ngAria will continue to evolve as we discover common use cases it can handle or warn about. Balancing performance and developer experience with end-users' needs requires careful planning and execution, which means it will take time to get right. Consider contributing on Github if you have ideas for ngAria and feel free to comment!
The module was originally contributed by @arbus, with feedback and improvements from the community through Github issues, pull requests and support from members of the Angular.js core team: Tobias Bosch, Brian Ford, Marcy Sutton and Pete Bacon Darwin.
Today, after eight months of work, over two thousand commits, nineteen beta and six release candidates, we finally released AngularJS 1.3.0 superluminal-nudge!
This release includes many notable new features:
Included in this release are over four hundred bug fixes, and nearly one thousand documentation improvements. We also improved the APIs around custom form controls and animations to make them more clear and easier to use.
1.3.0 has substantial performance improvements that reduce memory consumption, increase the speed of common DOM operations, and improve overall latency of Angular apps. You can take a look at the benchmarks in the AngularJS source code on GitHub for more information.
You can read the exhaustive list of changes in our changelog on GitHub.
By popular demand, AngularJS now officially has packages published to npm. You can do npm install angular
to get AngularJS 1.3.0. We hope this makes it easier for developers to make use of some of the great tools built around npm for front-end web development.
If you're on Angular 1.2, please refer to the corresponding section of the migration docs to see what breaking changes you should be aware of. And as we announced back in December, AngularJS 1.3.0 no longer supports IE8. This allowed us to make improvements and performance enhancements that otherwise would not be possible. If you're developing an application that does need IE8 support, the good news is that most non-breaking fixes are included in the latest 1.2.x branch.
As always, please try out this new version of Angular and submit issues on GitHub if you find anything amiss.
Last but not least, this 1.3.0 release includes work from over 400 contributors. Thanks to everyone who took time to submit issues, send PRs, improve docs, and give us feedback. We couldn't have done it without you!
Here's the full list of contributors who helped with this release:
ABitTooCalm, Aaditya Talwai, Aaron Wang, Abdessamad Idrissi, Abraham, Adam Bradley, Adam Humphrey, Agam Rafaeli, Ahmad Moussawi, Ahmed Nuaman, Aiden N, Ajay Roopakalu, Akhlesh, Alan Rubin, Alessandro Bahgat, Alex Miller, Alex Muntada, Alex Sanford, Alexander Harding, Alexander Karpan, Alexandre Potvin Latreille, Allon Hadaya, Almar, Amar Patel, Amin Ogarrio, Ammar, Andreas Gruenbacher, Andreas Krummsdorf, Andrei Korzhevskii, Andres Kalle, Andrew Barbarello, Andrew C. Greenberg, Andrew Delikat, Andrew Farrell, Andrew Kulinich, Andrew Mortimer, Andrew Pham, Andrew Silluron, Andrew Silluron-Gonzalez, Andrew Tarry, Andrey Sidorov, Andy Ferra, Anuj More, Archer, Ari, Ariel Mashraki, Arjunkumar, Artem Chivchalov, Artem Tyurin, Artemy Tregubenko, Artiom Neganov, Arturo Guzman, Ashutosh Das, Ayrat Aminev, Baptiste Fontaine, Basem Mostafa, Bastian Buchholz, Ben Harold, Ben Lesh, Ben McCann, Ben Wiklund, Bernhard Hofmann, Bijan Boustani, Bill Neubauer, Blaise Kal, Bobdina, Bocharsky Victor, Boris Serdyuk, Brad Williams, Brady Isom, Brett Porter, Brian, Brian Andersen, Brian Atkinson, Brian Feister, Brian Ford, Brian Hall, Brian Iversen, Brian Nenninger, Brice, Bruce Davidson, Bruno Baia, Buu Nguyen, Caio Cunha, Caitlin Potter, Cameron Spear, Carl Sutherland, Carlo s A. Guillen, Casey Flynn, Casey Garland, Chad Smith, Chaker Nakhli, Chance, Chia-liang Kao, Chirayu Krishnappa, Choi YoonSung, Chris Chua, Chris Constantin, Chris Inch, Chris Kuehl, Chris Rose, Chris Wheatley, ChrisRose, Christian, Christoph Burgdorf, Christophe Krebser, Christopher Rains, Christopher Rose, Chung-Min Cheng, Ciro Nunes, Clark Pan, Colin Casey, Corey Burrows, Cory Boyd, Craig Younkins, Dan Barua, Dan Matthews, Daniel, Daniel Aden, Daniel Luxemburg, Daniel Tabuenca, Daniel Zimmermann, Danielle, Dave Gaeddert, Dave Smith, Dave Wells, David Bennett, David Burrows, David I. Lehn, David Mosher, David Nelson, David Pope, David Rogers, DeK, Deepak Kapoor, Denis Parchenko, Derek Peterson, Derrick Mar, Diego Algorta, Diego Muñoz Escalante, Diego Plentz, Dken, Domenic Denicola, Domenico Matteo, Dominic Watson, Drew Perttula, Dylan, Dylan Semler, Eddie Hedges, Eddie Monge Jr, Edward Brey, Efthymis Sarbanis, Eli Dalbey, Elnur Abdurrakhimov, Elwin Arens, Emile Silvis, Emma Guo, Erich, Erin Altenhof-Long, Evan Winslow, Evgeniy Tkachenko, Firexion, Foxandxss, Franziskus Domig, Frederik Creemers, Freek Wielstra, GSC Leticia, Gaëtan PRIOUR, George Cox, Georgii, Georgios Kalpakas, Gias Kay Lee, GiffenGood, Gonzalo Ruiz de Villa, Greg Fedirko, Grigoriy Beziuk, Gronblom Sam, Guilbert, Guilherme de Souza, Hallvard NygÃ¥rd, Hari Menon, Hendrixer, Henrik Nyh, Hopiu, Hubert SABLONNIÈRE, Igor Minar, ImaginaryDevelopment, Isaac Shapira, Ivan Alvarez, Iwona Lalik, Izhaki, J. Bruni, Mizael Galvez, J. Michael Palermo IV, JMRodriguez24, Jack Hsu, Jack Wearden, Jake Buob, Jakub Zych, James Brewer, James Ferguson, James Harrison Fisher, James Kleeh, James Kyle, James Roome, James Vanneman, James Wagoner, James Watling, James deBoer, Jamie Krug, Jan, Jan Hancic, Janas Page, Jann Horn, Jarrett Harris, Jason Bedard, Jason Carver, Jason Farnsworth, Jason Hamm, Jason Miller, Jason Schapiro, Jason Travis, Jason Winnebeck, Jay Goldman, Jayson Harshbarger, Jeff Balboni, Jeff Cross, Jeff H. Parrish, Jeff Jewiss, Jeff Sheets, Jeff Whelpley, Jennifer Song, Jens Berthold, Jeremy Likness, Jesse Browne, Jesse Houchins, Jesse Palmer, Joe Pettersson, Joel Hooks, Joey Yang, John K. Paul, John Kurlak, John Lannon, John Papa, John Reilly, Jonathan Gotti, Jonathan Sampson, Jonathan Woodard, Jorg, Joscha Feth, Jose Martinez, Joseph Orbegoso Pea, Joseph Spencer, Josh Kurz, Josh Schreuder, Joshua Flanagan, Juampy, Juan Manuel Palacios, Julie, Julie Ralph, Julien Bouquillon, Julien Sanchez, Justin Walsh, Jürgen Walter, Kamil Pekala, Karl Seamon, Karl Yang, Kasparas Galdikas, Kebabpizza, Ken Sheedlo, Kenneth Lynne, Kent C. Dodds, Kevin Aenmey, Kevin Brogan, Kevin Western, Kindy Lin, Klaus Weiss, Kristian Hellang, Kristof Mattei, Kurt Funai, Lajos Veres, Laurent Curau, Lefteris Paraskevas, Leniel Macaferi, Leonardo Zizzamia, Levi Weiss, Louis Haußknecht, Lucas Galfaso, Lucas Galfasó, Lucas N. Munhoz, Luis Ramón López, Lukas Ruebbelke, Luke Eller, Luke Schoen, M Alix, Maarten Stolte, Maksim, Manan, Marc Lipovsky, Marcy Sutton, Mark Jones, Mark Miyashita, Martin Field, Martin Jezek, Martin Probst, Martin Staffa, Marty Kane, Mateusz Jedruch, Mathew Foscarini, Mathieu Tricoire, Mathis Hofer, Matias Niemelä, Matt Ginzton, Matt Johansen, Matt Kim, Matthew Davies, Matthew Miller, Mattias Holmlund, Mauro, Mauro Carrero, Max, Max Tobias Weber, Maxi Ferreira, Mehul Patel, Melissa Ip, Michael Barton, Michael Benford, Michael Gallagher, Michael Payne, Michael Silver, Michal Kawalec, MichaÅ‚ GoÅ‚ębiowski, Michel Salib, Michele Beltrame, Mike Haas, MikeMac, MikeMcElroy, Misha Moroshko, Mitch Robb, MiÅ¡ko Hevery, Mohamed Daif, Namolovan Nicolae, Naomi Black, Narretz, NateRedding, Nathan Wiebe, Neil Giarratana, Neil Johnston, Neil Rubens, Nick Carter, Nick Heiner, Nick Van Dyck, Nicolai Skogheim, Nicolas Leger, Nicolás Andrés Gallinal, Nikita Tovstoles, Nikita Vasilyev, Nima Mehanian, Noam Lewis, Oivvio Polite, Ole Michaelis, Ole Weitz, Oliver Schmidt, Olivier Louvignes, Omede Firouz, Paolo Moretti, Pascal Precht, Patrice Chalin, Patrick Hallisey, PatrickJS, Paul Dijou, Paul Harris, Paul Jolly, Pavel Pomerantsev, Pawel Kozlowski, Pete Bacon Darwin, Peter Bacon Darwin, Peter Coles, Peter Deak, Peter Kosa, Phil Westwell, Phillip Alexander, Pop, Praveen, ROUL, RafaÅ‚ Jagoda, Rahul Doshi, Ralph Giles, Renat Yakubov, René Wilhelm, Reuben Doetsch, Rhys Brett-bowen, Rich Snapp, Richard, Richard Collins, Richard Harrington, Richard Littauer, Rob Wormald, Robert Kielty, Robert Speicher, Robin Böhm, Robin Böhm, Rocky Assad, Rosseyn, Rouven Weßling, Roy Ling, RoyLING, Ryan Hall, Sadaoui Abderrahim, Sagie Maoz, Sam Dornan, Samuel Rats, Sandeep Panda, Sean Griffin, Sebastian K, Sebastian Müller, Sekib Omazic, Sequoia McDowell, Sercan Eraslan, Sergei Z, Sergio Sanguanini, Seth Stone, Shahar Talmi, Shai Reznik, Shane Keller, Shane M. Pelletier, Sharon DiOrio, Shawn Flahave, Siddique Hameed, Simon Taranto, SirTophamHatt, Smith, Smitha Milli, Sorin Gitlan, Stanislav Sysoev, Stephanie Nacios Staub, Stephen Bunch, Stephen Nancekivell, Steve Purcell, Steven Benjamin, Steven Petryk, Stéphane Reynaud, Subra, Søren Louv-Jansen, TLChan, Takashi Nakagawa, Tatham Oddie, Taylor Hutchison, Teddy Wing, Tero Parviainen, The Big Red Geek, TheMrSteve, Thiago Colares, Thom Allen, Thomas Belin, Thomas Guillory, Thomas Junghans, Thomas Tuts, Thomas Wicker, Tiago Ribeiro, Tim Kendrick, Tim Kindberg, Tim Ruffles, Tim Whitbeck, Tim van den Eijnden, Timothée Jeannin, Tobias Bosch, Tobias Leugger - Vibes, Tom Kadwill, Tom Yam, Tomer Chachamu, Tony Bergeron, Tony Cronin, Traxmaxx, Trevor Ewen, Trey Hunner, Tyler Eich, Tyler Kellogg, Tyler McGinnis, Uri Goldshtein, Valentin Waeselynck, Vic Metcalfe, Victor Berchet, Victor Queiroz, Vikram Soni, Vincent Driessen, Vitali Tsevan, Vlad GURDIGA, Vojta Jina, Warlock, Wes Alvaro, Wesley Cho, William Bagayoko, William Chen, Wladimir Coka, Wojciech Fornal, Wojciech Krzystek, XrXr, Yaron Uliel, Yiling Lu, Yuri Sulyma, Yutaka Yamaguchi, Yves Brissaud, Yves Richard, Zach Pomerantz, Zachary Babtkis, Zacky Ma, Zahid Mahir, Zak Johnson, Zhong Liang Ong, Ziang Song, Zorigt Bazarragchaa, active-low, adam77, adeelcap15, ahliddin, akerekes, alexgarrett, alirezamirian, amagee, andre, aschokking, ashley williams, asif22, b9chris, barcahead, benjamingr, bolasblack, bradwheel, bullgare, cexbrayat, cgwyllie, chadfennell, chimney-sweeper, chirag, chrisrhoden, cnlevy, corrupt, cranesandcaff, cwclark, danrbergman, dbwhddn10, deepak-kapoor, dennishall1, desertapple, doodeec, dumpweed, ephigabay, erikrahm, expilo, eydreeyawn, frandroid, fuqcool, fvanderwielen, gabrielbrasil, garetht, gdennie, gdi2290, gipsy86147, gogotanaka, grsmvg, hambyiii, hanstest, jbnizet, jeffavis, jenkins, jerryfan, jesse, jfortunato, jim lyndon, jimmywarting, jody tate, jpsimons, justmiaotou, k-funk, kalvn, kimwz, krusty, letsmakesense, linclark, ltrillaud, m-tretyak, magoswiat, marcin-wosinek, marcwright, markau, martco, matthewhintzen, mbrookes, mgerstenblatt, miknsh5, mishoo78, mjfroehlich, mkolodny, mrmrs, ncuillery, nderoche, nnennajohn, nosideeffects, oojerryoo, oweitz, paranoidandroid522, perek, plmetz, poshest, pyriand3r, raghudodda, rodyhaddad, royling, rsnapp, sanfords, sap9433, scottywakefield, sgrebnov, sixin210, skwakman, smarigowda, snicolai, spacemigas, specialorange, standup75, stucash, sunderls, sunnylost, tamakisquare, thammin, thenickcox, thorn0, tommyangelo, tpiere, ttam3d0, unclejustin, unicodesnowman, vaibhav kohli, vdyckn, venticello, victorbjelkholm, wbyoko, winkler1, winsontam, wjtk, xdhmoore, xi, zahragh, zainengineer, and 刘朋飞
With ASP.NET vNext Microsoft has remodeled the entire pattern, with lots of added features and improvements in programming model. I have tried to compile the information from few useful source in this post which contains the complete list of ASP.NET vNext features.
The best part of this is it’s a open source, in this post I have just collected few interesting features of ASP.NET vNext and the video of 2 great Scott’s (Scott Hanselman and Scott Hunter) originally presented in Microsoft TechEd North America 2014.
Download :- MP3 (Audio only), Mid Quality MP4 (Windows Phone, HTML5, iPhone), High Quality MP4 (iPad, PC, Xbox), MP4 (iPhone, Android)
Here are some of the new features in ASP.NET vNext.
Ref : http://blogs.msdn.com/b/dotnet/archive/2014/05/12/the-next-generation-of-net-asp-net-vnext.aspx
The reduced footprint of the cloud-optimized runtime makes it practical to deploy the framework with your app.
vNext uses the Roslyn compiler to compile code dynamically.
You can find this video and many other interesting videos of TechEd North America 2014 @ http://tena2014.eventpoint.com/topic/list
Link to Scott Hanselman blog: http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx
Complete list of feature in Text:
http://www.asp.net/vnext/overview/aspnet-vnext/getting-started-with-aspnet-vnext-and-visual-studio
I hope this compiled information might help you to kick start your journey of ASP.NET vNext, please share your views in the comments below.
Couple of days back I heard that few millions Google users account id and passwords are leaked online, initially I though its just a rumor, but later after reading in leading news papers I got to know the seriousness of the issue
Russian hackers have leaked the email IDs and passwords of as many as 4.93 million Google accounts. The same Google account password is used across all Google products, such as Gmail, Drive, Plus, YouTube, Maps etc.
The account details have been posted on bitcoin forum btcsec.com by a user named Tvskit. On the forum, Tvskit has said that approximately 60% of the passwords are still active.
After digging down into the thread I managed to download the complete list of users whose account passwords are hacked, remember this is just the list of users not their passwords. Though this list does not contain my user name but I found couple of emails I am familiar with, so though to share the complete list with the readers of my blog and friends.
You can also query your email on the link here, to see if your Google account is present in the hackers database.
I have uploaded the file here, if you find your username in this list then I suggest you to take necessary action to protect your account, as you might be aware that the same account is used across all your Google services like Gmail, Google Drive, You Tube, Android, etc.
Link to download the file containing all the Usernames: http://1drv.ms/1qOspGg
Version 4.0.0.1 of Finline Touch is live in Windows Phone store, with major enhancements.
You can now Sync your Saved Quotation across multiple mobile devices using Microsoft OneDrive, in addition to the following features from the previous version.
You can download the App from Windows Phone Store @ http://www.windowsphone.com/en-in/store/app/finline-touch/e004e119-7f4b-46f1-bda5-aa1b1b94e6ef
Or you can Scan the QR Code from your mobile to download the app
Sync to OneDrive, helps to share the saved quotations across multiple mobile devices*
Backup, Restore, Sync to One drive is in BETA mode, please share your feedback so that I can improve this feature.