我正在MVC 5项目中尝试使用新的ASP.NET Identity实现自定义身份验证。
我有一个单一用户名和密码,我想用它来限制用户可以通过控制器和视图上的[授权]标签查看网站的哪些页面。(简单)
我正在从FormsAuthentication模型迁移,在该模型中,这就像将凭据放在web.config中一样简单。
因为我只有一个用户名和密码,所以我不想使用数据库作为UserStore,而我希望ASP.NET Identity从web.config中的自定义配置部分检索用户名和密码(不要担心这一部分)。
经过大量搜索,我找不到不依赖数据库进行ASP.NET身份验证的代码示例。
因此,我正在寻找一个代码示例,在身份验证时,用户可以输入自定义代码来检查用户名&根据web.config的自定义配置部分中的凭据设置密码。
有人能给我指个正确的方向吗?谢谢。
更新:我试过查看这个代码示例,但它甚至没有开箱即用地编译。。贫穷的http://code.msdn.microsoft.com/Simple-Aspnet-Identiy-Core-7475a961
更新:我不想使用FormsAuthentication的原因是我正在编写一个NuGet包,该包将安装到web应用程序中。NuGet包要做的一件事是在web.config中创建一个自定义ConfigurationSection,其中包括(除其他外)单个用户名和密码。我认为这会更安全,因为它不会更改当前目标web应用程序中的任何现有FormsAuthentication设置。
更新:我想我已经成功了。将很快公布调查结果。
--Lee
您不必迁移到Identity框架,FormsAuthentication仍然有效。Andrew是正确的,使用Identity框架在这里没有什么意义,因为它都是关于管理用户的。
但是,如果您坚持使用它,您可以实现自己的UserManager
和IUserStore
。一些指导可以在Scott K.Allen的博客文章中找到。请参阅底部的链接-实现示例-您可以获取其中的一些并根据需要进行转换。
我想您的IUserStore
会很简单,因为只有一个用户,而且大多数方法都不必实现。对于所需的内容(我认为您需要FindUserById
及相关内容),您需要通过ConfigurationManager 联系web.config