【问题标题】:asp.net mvc3, how do I authenticate?asp.net mvc3,我如何进行身份验证?
【发布时间】:2011-10-06 23:43:24
【问题描述】:

我需要为我的朋友建立一个“我的帐户”应用程序。我打算使用 asp.net MVC 3。

我必须使用第三方 API 来验证用户。如果这是常规的 Web 应用程序,这很容易,我使用第三方 API 提交请求,然后得到响应。如果这是授权用户,请创建一个会话。在所有受保护的页面上,我只检查会话,如果存在,则显示内容,否则重定向回登录页面。

我可能可以在我的 mvc3 项目上做同样的事情,但我知道这绝对是一个错误的方法。 MVC3 非常灵活。必须有更好的方法来做到这一点。在我从第三方 API 得到响应后。之后我该怎么办?如果可以的话,请给我一些代码。

【问题讨论】:

  • 家庭作业?你知道怎么用谷歌吗?

标签: asp.net asp.net-mvc-3 authentication authorize


【解决方案1】:

我认为使用 MVC3 进行身份验证与常规 Web 应用程序没有什么不同。在您的控制器中,您将从视图中获取的用户名和密码发送到 API,然后返回响应。

然后您可以将其保存到会话并在您想要保护的任何页面上对其进行检查。

MVC 只是分离视图逻辑、业务逻辑和数据模型的方式。申请流程是一样的。

【讨论】:

    【解决方案2】:

    使用 ASP.NET 成员资格提供程序并创建自定义提供程序以连接到您的 API。这为您完成了很多艰苦的工作,而您并不是在“重新发明轮子”。这里有一个关于如何使用 MVC 执行此操作的精彩概述:http://theintegrity.co.uk/2010/11/asp-net-mvc-2-custom-membership-provider-tutorial-part-1/

    【讨论】:

      【解决方案3】:
      1. 在执行 file-new 项目时使用“Internet 应用程序”模板创建一个新的 MVC 3 应用程序。
      2. 然后为您创建所有代码 - 在 Visual Studio 中单击解决方案资源管理器中的“ASP.NET 配置”图标。
      3. 创建您的用户和角色
      4. 装饰您的控制器和/或操作方法
      [授权(角色=“管理员”)] 公共类 MyAdminOnlyController : 控制器 { }
      1. 配置附加功能,例如忘记密码功能、密码重置等。一些附加功能需要编码。

      完成!

      【讨论】:

        【解决方案4】:

        ASP.NET 已经构建了 ASP.NET 成员资格提供程序。后端数据可以存储在 ASP.NET 配置网站、SQL Server 数据库、Active Directory 和其他数据库中,但您需要自定义身份验证提供程序。

        this is SQLServer Membership 提供程序的示例,有关详细文档,您可以阅读here

        对于 ASP.NET 配置管理成员资格提供程序,您可以从 Music Store ASP.NET MVC tutorial 中读取 Membership and Authorization section。如果您想了解 ASP.NET MVC 身份验证/授权。音乐商店示例是探索 ASP.NET MVC3 功能、实体框架和身份验证的推荐教程。

        【讨论】:

          猜你喜欢
          • 2012-08-08
          • 2011-10-09
          • 1970-01-01
          • 1970-01-01
          • 2012-01-01
          • 2017-04-17
          • 1970-01-01
          • 2010-11-11
          • 1970-01-01
          相关资源
          最近更新 更多