Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何实现ASP.NET角色提供程序?_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Asp.net Membership - Fatal编程技术网

C# 如何实现ASP.NET角色提供程序?

C# 如何实现ASP.NET角色提供程序?,c#,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-membership,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Membership,我有几个关于ASP.NET成员资格和角色提供程序的顶级问题。我做了一些搜索,但很难找到一些外行教程。我已经在ASP.NET中编写代码有一段时间了,但是我在身份验证方面唯一的实际经验是使用FormsAuthentication.SetAuthCookie(usernameFromDatabase,false) 当我使用上面的SetAuthCookie()方法时,我使用的是ASP.NET成员资格提供程序吗?如果我错了,请纠正我,但我不认为我错了。我只是在设置身份验证cookie,对吗?我通常在我的数

我有几个关于ASP.NET成员资格和角色提供程序的顶级问题。我做了一些搜索,但很难找到一些外行教程。我已经在ASP.NET中编写代码有一段时间了,但是我在身份验证方面唯一的实际经验是使用
FormsAuthentication.SetAuthCookie(usernameFromDatabase,false)

当我使用上面的
SetAuthCookie()
方法时,我使用的是ASP.NET成员资格提供程序吗?如果我错了,请纠正我,但我不认为我错了。我只是在设置身份验证cookie,对吗?我通常在我的数据存储库中实现我自己的自定义方法,比如
GetUser\u ByUsername(stringusername)
,然后与ORM对话并获得正确的用户

  • 成员资格和角色提供程序是否有自己的数据存储
  • 如果我想使用自己的数据存储怎么办
  • 我是否需要实现自己的成员资格/角色提供者,以及如何实现
  • 或者,我只是设置身份验证cookie,然后使用自己的检索方法等,这是定制成员资格/角色提供程序的最佳方式吗

  • 我只是想了解一下这个系统的简要教程/说明。如果你有什么好的推荐信给我看,我很乐意看一看:)

    实现一个会员资格提供者并不难。请注意,您只需要实现计划实际使用的方法。成员资格提供程序应被视为从身份验证角度与用户信息交互的一种手段。它不会为您创建身份验证cookie;在成功调用提供程序上的ValidateUser方法后,可以执行此操作。它将允许您根据提供程序接口开发应用程序,并通过配置轻松更改要使用的提供程序,而不是重写应用程序代码。我已经使用我自己的模式成功地实现了几个不同的成员资格提供程序,它们支持内置和混合内置/active directory身份验证。更多信息可通过以下链接获得:

    • 第条:
    • 示例实现描述:
    • 示例代码:

      • 实现成员资格提供者并不难。请注意,您只需要实现计划实际使用的方法。成员资格提供程序应被视为从身份验证角度与用户信息交互的一种手段。它不会为您创建身份验证cookie;在成功调用提供程序上的ValidateUser方法后,可以执行此操作。它将允许您根据提供程序接口开发应用程序,并通过配置轻松更改要使用的提供程序,而不是重写应用程序代码。我已经使用我自己的模式成功地实现了几个不同的成员资格提供程序,它们支持内置和混合内置/active directory身份验证。更多信息可通过以下链接获得:

        • 第条:
        • 示例实现描述:
        • 示例代码:

        1-是的,如果您使用内置的成员资格/角色提供程序,它们将使用在单独数据库或现有数据库中创建的表。您可以使用工具aspnet_regsql.exe创建这些表-它将引导您完成向导。或者,也可以使用不同的参数从命令行调用它,以跳过向导。是MS关于在数据库中创建必要的数据库/表的一些信息

        2-你可以这样做,但是你必须实现一个定制的成员资格提供者,这并不困难。还有一些教程

        3-除非您想使用自己的数据存储,或者需要内置提供程序中没有的功能,否则您不一定需要这样做


        4-我想说,您最好使用ASP.NET为成员资格和角色提供的内置功能。

        1-是的,如果您使用内置的成员资格/角色提供程序,他们会使用在单独数据库或现有数据库中创建的表。您可以使用工具aspnet_regsql.exe创建这些表-它将引导您完成向导。或者,也可以使用不同的参数从命令行调用它,以跳过向导。是MS关于在数据库中创建必要的数据库/表的一些信息

        2-你可以这样做,但是你必须实现一个定制的成员资格提供者,这并不困难。还有一些教程

        3-除非您想使用自己的数据存储,或者需要内置提供程序中没有的功能,否则您不一定需要这样做

        4-我想说,您最好使用ASP.NET为成员资格和角色提供的内置功能。

        SetAuthCookie()
        与ASP.NET中的表单身份验证框架配合使用,然后您可以调整该框架以与成员资格提供方集成

        • 成员资格和角色提供程序是否有自己的数据存储
        他们可以,是的。有一个抽象实现,您可以根据特定的数据需求对其进行子类化。有一个
        SqlMembershipProvider
        您可以直接使用,您只需要一个数据库来指向并创建所需的表。关于这个类有很多信息,比如或

        • 如果我想使用自己的数据存储怎么办
        SqlMembershipProvider提供了
        SqlMembershipProvider,但是如果您有兴趣了解另一个DBMS是如何做到这一点的,请查看这个

        • 我是否需要实现自己的成员资格/角色提供者,以及如何实现
        使用内置的表非常容易,但是很多商店都有自己的表,这样就可以使用现有的表了。您需要实现

        • 或者,我只是设置身份验证cookie,然后使用自己的检索方法等,这是定制成员资格/角色提供程序的最佳方式吗