2014-08-28 62 views
14

我想在MVC 5项目中使用新的ASP.NET标识实现自定义身份验证。如何在没有数据库的情况下使用ASP.NET标识

我有一个单个用户名和密码,我想用它来限制用户可以通过控制器和视图上的[Authorize]标签查看网站的哪些页面。 (简单)

我正在从FormsAuthentication模型中迁移,因此这与将凭据放入web.config中一样简单。

因为我只有一个用户名和密码我不希望使用数据库作为UserStore,而不是我想ASP.NET身份来检索的网页自定义的ConfigurationSection的用户名和密码。 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设置。

更新:我想我已经得到它的工作。很快会发布调查结果。

- 李

+1

的ASP.NET MVC'[授权]'属性可以与FormsAuthentication使用;你不需要使用ASP.NET Identity,事实上这样做并不合理。您是否遇到了使[Authorize]'属性与FormsAuthentication进程一起工作的问题,或者您还有其他原因不想再使用FormsAuthentication? – Claies 2014-08-28 10:40:16

+1

有关更多上下文,请参阅http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx#_Creating_MVC_project – Claies 2014-08-28 10:42:47

+0

嗨,所以我最初使用FormsAuthentication并没有问题这样做..但是我想使用新的身份的东西,因为我正在编写一个NuGet包,其代码在运行时需要它自己的凭据,我不想干涉任何可能的现有FormsAuthentication设置通过在安装NuGet软件包时将自己插入到web.config中。 – 2014-08-28 11:47:13

回答

0

您不必迁移到身份框架,FormsAuthentication仍然有效。安德鲁是正确的,使用Identity框架在这里没什么意义,因为它完全关于管理用户。

但是,如果你坚持使用它,你可以实现你自己的UserManagerIUserStore。一些指导可以在Scott K. Allen blog post中找到。查看底部的链接 - 实现示例 - 您可以采取其中一些并转换为您的需求。

我想象你的IUserStore将会很简单,因为只有一个用户并且大部分方法都不需要实现。而对于需要的人(我认为你需要FindUserById和相关的),你需要通过ConfigurationManager

+0

唉,我希望有一个'完整“的解决方案,不需要数据库并从web.config中检索凭据。我试图增加各种代码示例失败。 – 2014-08-28 11:50:53

+0

恐怕没有完整的解决方案。 – trailmax 2014-08-28 11:54:33

+0

您是否说无法编写自定义的ASP.NET Identity身份验证实现,该实现从Web.config中的自定义ConfigurationSection中检索证书?我认为新身份的全部重点是让它超级可扩展? – 2014-08-28 11:59:28

相关问题