我正在尝试使用MVC 5项目中的新ASP.NET标识实现自定义身份验证。
我有一个单一用户名和密码,我想用它来限制用户可以通过控制器和视图上的[授权]标签看到的网站页面。 (易)
我正在从FormsAuthentication模型迁移,这就像将凭据放在web.config中一样简单。
因为我只有一个用户名和密码我不想将数据库用作UserStore ,而是我希望ASP.NET Identity检索用户名和密码来自web.config中的自定义配置部分(不要担心该部分)。
经过大量搜索后,我无法找到一个不依赖于数据库进行ASP.NET身份验证的代码示例。
所以,我正在寻找一个代码示例,在验证时,用户可以输入自定义代码来检查用户名&密码取决于web.config的自定义ConfigurationSection中的凭据。
有人可以指出我正确的方向,谢谢。
更新:我已经尝试过查看此代码示例,但它甚至没有开箱即用。很糟糕。 http://code.msdn.microsoft.com/Simple-Aspnet-Identiy-Core-7475a961
更新:我不想使用FormsAuthentication的原因是我正在编写一个将安装到Web应用程序中的NuGet包。 NuGet包将做的一件事是在web.config中创建一个自定义ConfigurationSection,其中包括(除其他外)一个用户名和密码。我认为这样会更安全,因为它不会改变目标Web应用程序中当前的任何现有FormsAuthentication设置。
更新:我想我已经开始工作了。将很快发布调查结果。
- 李
答案 0 :(得分:16)
我现在有一份代码的工作副本https://github.com/leeenglestone/ASP.NET-Identity-Without-a-Database
它主要基于Santosh Poojari已经完成的工作
- 李
答案 1 :(得分:0)
您不必迁移到Identity框架,FormsAuthentication仍然有效。安德鲁是正确的,使用Identity框架在这里没什么意义,因为它完全是为了管理用户。
但是,如果您坚持使用它,则可以实施自己的UserManager
和IUserStore
。可以在Scott K. Allen blog post中找到一些指导。请参阅底部的链接 - 实施示例 - 您可以采取其中一些并转换为您的需求。
我认为你的IUserStore
会很简单,因为只有一个用户,大多数方法都不必实现。对于所需的(我认为您需要FindUserById
并且相关),您需要通过ConfigurationManager
web.config
联系