精华内容
下载资源
问答
  • WEB应用中的基本身份验证和表单身份验证在任何一种WEB应用开发中,不论大中小规模的,每个开发者都会遇到一些需要保护程序数据的问题,涉及到用户的LOGIN ID和PASSWORD。那么如何执行验证方式更好呢?实际上,有很多...
    WEB应用中的基本身份验证和表单身份验证

    在任何一种WEB应用开发中,不论大中小规模的,每个开发者都会遇到一些需要保护程序数据的问题,涉及到用户的LOGIN ID和PASSWORD。那么如何执行验证方式更好呢?实际上,有很多方式来实现。在本文里,我们不会把所有的验证方法都考虑到,我们的目的是让你学会如何以最简单最方便的验证方法来完成。下面将讨论基本的(BASIC)和基于表单的(FORM-BASED)验证方式。我们考虑使用TOMCAT作为WEB SERVER,它通过server.xmlweb.xml文件提供基本的和基于表单的验证。JSP页面中的j_security_check 表单(for FORM-based) 需要两个参数:j_usernamej_password。它们指定了在SQL数据库中的登陆角色。你能够看到,它的弹性化,可用性和必要性。

    第一步,我们要下载TOMCAT和MYSQL,前者用来做WEB SERVER,后者用来做SQL SERVER。还要下载JDBCRealm工具,它在TOMCAT中使用,用来做MYSQL连接器,连接MYSQL数据库的。

    我们假设你已经安装了TOMCAT和MYSQL,那么我们开始从SERVER的配置入手了。当然,你还需要安装JAVA的MYSQL连接驱动,我强烈建议只使用稳定的驱动版本,因为在有些情况下,alpha/beta版本的驱动不能正常工作。

    下面我们来操作SQL数据库。老实说,MYSQL和TOMCAT是相当好的工具,它们都是跨平台的,不管你的操作系统是WINDOWS还是类似UNIX/LINUX的,它们都能正常运行。因此,不论运行环境,它们的配置过程都是绝对一样的。

    MySQL

    在命令行中执行mysql 客户端命令,然后输入:

    
    

    这个将为你创建一个weblogin数据库,它将保存用户名和密码以及角色等一切信息。你对数据库所做的任何改变都会直接立即反映出来。比如说添加用户,改变用户密码和角色等。

    
    

    我们创建一个users表用来保存用户的LOGIN和PASSWORD:

    
    

    如你看到的,我们要在group表里保存login属于哪个group的信息。下面,我们要插于一些数据用来测试使用,并完成MYSQL的配置工作:

    insert into users  ('green', 'testpwd');
    insert into groups ('green', 'testgroup');

    现在,我们创建了一个用户叫green,他的密码是testpwd,他属于testgroup这个用户组。接着,轮到TOMCAT的配置了。

    Tomcat

    TOMCAT本身并没有能力操作数据库来实现身份验证。但是可以依靠JDBCRealm。下面我们来使用它。

    下面我们从TOMCAT的/conf/server.xml文件来开始我们的配置。打开这个文件并找到下面的内容:

    
    

    删除这一行,或者用<!-- ... --> 注释掉它,我们要使用JDBCRealm。所以输入下面的内容:

    
    

    下面我们对field参数做详细讲解:

    • debug—这是我们设置的debug参数,数字越高显示信息越详细。
    • driverName—这个是MYSQL驱动的名字。要确保这个驱动的JAR包在TOMCAT的CLASSPATH中能够找到它。
    • connectionURL—这个是用来建立JDBC连接的数据库URL。在这个field里,weblogin是我们数据库的名字。userpassword 是我们登陆数据库的用户数据。
    • userTable—一个定义有userNameColuserCredCol字段的表。
    • userNameColuserCredColusers表里定义的login和pass

    现在,我们完成了配置过程。下面,我们要配置WEB应用程序来被这样一个身份验证方式保护起来。我们要举两个例子。最简单的是基本身份验证方式,然后就是基于表单的身份验证。在第一种情况里,我们尝试访问受保护的数据,将会有一个POP-UP窗口弹出提示你输入你的login和password。在第二种情况里,我们会通过页面的方式来让你通过身份验证。这个页面的内容可以是任意的,这个取决于你要使用怎么样的验证方式了。

    基本身份验证方式(BASIC authorization method)

    我们假设应用程序在TOMCAT的/webapps/webdemo, 我们要保护所有在admin 子目录里的文件。我们必须打开它的/webapps/webdemo/WEB-INF/web.xml文件,输入下列内容:

    
    

    让我们来看看刚才输入的内容。我们为应用程序创建了一个web-resource-name并映射到login-config 。我们还定义了url-pattern, 它指明你受保护程序的路径。在login-conf中,我们定义了一个BASIC auth-method

    很简单,对吗?不要忘记了,在使改变生效前要停止并重启TOMCAT。

    表单身份验证方式(FORM-based authorization method)

    对于这种方式,我们仅仅只需要:

    • 修改/webapps/webdemo/WEB-INF/web.xml
    • 创建一个登陆用的JSP页面, 用户将在这里的HTML表单中输入他的登陆ID和密码
    • 创建一个JSP error页面,一旦验证失败,用户将跳到该页面

    如果你先尝试使用BASIC验证方式,你只需要改变login-config 为下面那一段代码。否则,你需要输入security-constraint代码段。使用下面的login-config:

    
    

    我们设置表单的auth-method并定义了form-login-config。这个将使得TOMCAT使用 /admin/login.jsp页面来让用户登陆,使用/admin/error.jsp页面来处理登陆失败。

    你可以使用任何你想要的出错信息。页面唯一需要的就是下面的HTML表单标签,你要插到页面中:

    
    

    布局,风格,或其他所有你喜欢的。这个error页面能够做成任何你想要的。无非就是通知用户,验证失败了。

    OK,全部完成了。你需要停止和重启一遍TOMCAT使得改变生效。

    © Olexiy Prokhorenko, http://www.7dots.com/resume/
    Co-author: Alexander Prohorenko

    展开全文
  • 借助于 ASP.NET 表单身份验证,用户可通过在 Web 表单上输入凭据(用户名和密码)来表明自己的身份。在收到这些凭据后,Web 应用程序对照数据源检查用户名和密码以验证用户的身份。本“如何做”介绍如何通过使用轻量...
    借助于 ASP.NET 表单身份验证,用户可通过在 Web 表单上输入凭据(用户名和密码)来表明自己的身份。在收到这些凭据后,Web 应用程序对照数据源检查用户名和密码以验证用户的身份。
    本“如何做”介绍如何通过使用轻量目录访问协议 (LDAP) 对照 Microsoft? Active Directory? 目录服务来验证用户。这里还介绍了如何检索用户所属的安全组和通讯组;如何将此类信息存储在 GenericPrincipal 对象中,以及如何将它存储在 HttpContext.Current.User 属性(与请求一起传递到 ASP.NET Web 应用程序中)。可随后将其用于 .NET 基于角色的授权。
    需求
    以下各项介绍了推荐的硬件、软件、网络基础结构、技巧和知识以及您需要的服务包。
       Microsoft Windows? 2000 操作系统
       Microsoft Visual Studio? .NET 开发系统
       
    “如何做”中的过程还要求您具备 Microsoft Visual C#? 开发工具的相关知识。
    总结
    “如何做”包括如下过程:
    1.   创建一个具有登录页面的 Web 应用程序
    2.   配置 Web 应用程序的表单身份验证
    3.   开发 LDAP 身份验证代码,以便在 Active Directory 中查找用户
    4.   开发 LDAP组检索代码,以便查找用户的组成员身份
    5.   验证用户的身份并创建表单身份验证票
    6.   实现身份验证请求处理程序以构造 GenericPrincipal 对象
    7.   测试应用程序
     
    1. 创建一个具有登录页面的 Web 应用程序
    此过程创建一个简单的 C# Web 应用程序,该应用程序包含一个登录页面(用户可在其中输入用户名和密码)和一个默认页面(显示与当前 Web 请求关联的标识名称和组成员身份信息)。
    u 创建一个具有登录页面的 Web 应用程序
    1.   启动 Visual Studio .NET,然后创建一个名为 FormsAuthAD 的新 C# ASP.NET Web 应用程序。
    2.   使用解决方案资源管理器将 WebForm1.aspx 重命名为 Logon.aspx
    3.   添加一个新的 System.DirectoryServices.dll 程序集引用。这可提供对 System.DirectoryServices 命名空间的访问该命名空间包含用于 Active Directory 查询和操作的托管类型。
    4.   将表 1 中所列的控件添加到 Logon.aspx,创建一个简单的登录表单。
    表 1:Logon.aspx 控件
    控件类型
    文本
    ID
    标签
    域名:
    -
    标签
    用户名:
    -
    标签
    密码
    -
    文本框
    -
    txtDomainName
    文本框
    -
    txtUserName
    文本框
    -
    txtPassword
    按钮
    登录
    btnLogon
    标签
     
    lblError
     
    5.   txtPassword TextMode 属性设置为 Password
    6.   在解决方案资源管理器中右击 FormsAuthAd指向添加”,然后单击添加 Web 窗体
    7.   在“名称”字段中,输入 default.aspx,然后单击“打开”。
    8.   在解决方案资源管理器中,右击 default.aspx,然后单击“设置为开始页”。
    9.   双击 default.aspx 以显示页面加载事件处理程序。
    10.   在事件处理程序中添加以下代码以显示与当前Web 请求关联的标识名称。
     
    Response.Write( HttpContext.Current.User.Identity.Name );
     
         
    2. 配置 Web 应用程序的表单身份验证
    此过程编辑应用程序的 Web.config 文件,以配置该应用程序的表单身份验证。
    u配置 Web 应用程序的表单身份验证
    1.   使用解决方案资源管理器打开 Web.config。
    2.   查找 <authentication> 元素并将 mode 属性改为 Forms
    3.   将下面的 <forms> 元素作为身份验证元素的一个子元素进行添加并按如下所示设置 loginUrlnametimeout path 属性
     
    <authentication mode="Forms">
    <forms loginUrl="logon.aspx" name="adAuthCookie" timeout="60" path="/">
    </forms>
    </authentication>
     
    4.   在 <authentication> 元素下面添加下面的 <authorization> 元素。这将只允许经身份验证的用户访问该应用程序。<authentication> 元素先前建立的 loginUrl 属性将把未验证的请求重定向到 logon.aspx 页面。
     
    <authorization>
    <deny users="?" />
    <allow users="*" />
    </authorization>
     
    5.   保存 Web.config。
    6.   启动 IIS Microsoft 管理控制台 (MMC) 管理单元。
    7.   右键单击应用程序的虚拟目录然后单击属性
    8.   单击目录安全性选项卡然后在匿名访问和验证控件组中单击编辑按钮。
    9.   选择匿名访问复选框并清除允许 IIS 控制密码复选框。
    10.   因为默认匿名帐户 IUSR_MACHINE 没有访问 Active Directory 的权限所以创建一个具有最少权限的新帐户然后在身份验证方法对话框中输入该帐户的详细信息。
    11.   单击“确定”,然后再次单击“确定”,关闭“属性”对话框。
    12.   返回到 Visual Studio .NET然后在 Web.config 中的 <authorization> 元素下面添加 <identity> 元素并将模拟属性设置为 true。这将导致 ASP.NET 模拟先前指定的匿名帐户。
     
     
    <identity impersonate="true"/>
     
    由于采用此配置所有应用程序请求均在配置的匿名帐户的安全上下文中运行。用户将通过 Web 表单来提供凭据以进行 Active Directory 身份验证,但用于访问 Active Directory 的帐户是配置的匿名帐户。
     
    3. 开发 LDAP 身份验证代码,以便在 Active Directory 中查找用户
    此过程将新的帮助器类添加到 Web 应用程序中以封装 LDAP 代码。该类最初提供 IsAuthenticated 方法以针对 Active Directory 用户对象验证提供的域、用户名和密码。
    u开发 LDAP 身份验证代码以便在 Active Directory 中查找用户
    1.   添加名为 LdapAuthentication.cs 的新 C# 类文件。
    2.   添加对 System.DirectoryServices.dll 程序集的引用。
    3.   将以下 using 语句添加到 LdapAuthentication.cs 顶部。
     
    using System.Text;
    using System.Collections;
    using System.DirectoryServices;
     
    4.   将现有的命名空间重命名为 FormsAuthAD
    5.   将两个专用字符串添加到 LdapAuthentication 类中一个用于保存到 Active Directory LDAP 路径另一个保存用于搜索 Active Directory 的筛选器属性。
     
    private string _path;
    private string _filterAttribute;
     
    6.   添加可用于初始化 Active Directory 路径的公用构造函数。
     
    public LdapAuthentication(string path)
    {
    _path = path;
    }
     
    7.   添加以下将域名、用户名和密码作为参数并返回 bool IsAuthenticated 方法以指示在 Active Directory 中是否存在具有匹配密码的用户。此方法最初试图使用提供的凭据来绑定到 Active Directory。如果此操作成功,则该方法使用 DirectorySearcher 托管类来搜索指定的用户对象。如果找到,则更新 _path 成员以指向该用户对象,并使用该用户对象的通用名称属性来更新 _filterAttribute 成员。
     
    public bool IsAuthenticated(string domain, string username, string pwd)
    {
    string domainAndUsername = domain + @"/" + username;
    DirectoryEntry entry = new DirectoryEntry( _path,
    domainAndUsername, pwd);
     
    try
     {
    // Bind to the native AdsObject to force authentication.
    Object obj = entry.NativeObject;
    DirectorySearcher search = new DirectorySearcher(entry);
    search.Filter = "(SAMAccountName=" + username + ")";
    search.PropertiesToLoad.Add("cn");
    SearchResult result = search.FindOne();
    if(null == result)
        {
    return false;
        }
    // Update the new path to the user in the directory
    _path = result.Path;
    _filterAttribute = (String)result.Properties["cn"][0];
     }
    catch (Exception ex)
     {
    throw new Exception("Error authenticating user." + ex.Message);
     }
    return true;
    }
     
    4. 开发 LDAP 组检索代码,以便查找用户的组成员身份
    此过程扩展 LdapAuthentication 类以提供一个 GetGroups 方法,该方法将检索当前用户所在的组列表。该 GetGroups 方法将组列表作为管道分隔的字符串返回(如下所示)。
     
    "Group1|Group2|Group3|"
     
    u开发 LDAP组检索代码以便查找用户的组成员身份
    1.   GetGroups 方法的以下实现添加到 LdapAuthentication 类中。
     
    public string GetGroups()
    {
    DirectorySearcher search = new DirectorySearcher(_path);
    search.Filter = "(cn=" + _filterAttribute + ")";
    search.PropertiesToLoad.Add("memberOf");
    StringBuilder groupNames = new StringBuilder();
    try
     {
    SearchResult result = search.FindOne();
    int propertyCount = result.Properties["memberOf"].Count;
    String dn;
    int equalsIndex, commaIndex;
     
    for( int propertyCounter = 0; propertyCounter < propertyCount;
    propertyCounter++)
        {
    dn = (String)result.Properties["memberOf"][propertyCounter];
     
    equalsIndex = dn.IndexOf("=", 1);
    commaIndex = dn.IndexOf(",", 1);
    if (-1 == equalsIndex)
          {
    return null;
          }
    groupNames.Append(dn.Substring((equalsIndex + 1),
    (commaIndex - equalsIndex) - 1));
    groupNames.Append("|");
       }
     }
    catch (Exception ex)
     {
    throw new Exception("Error obtaining group names." + ex.Message);
     }
    return groupNames.ToString();
    }
     
     
    5. 验证用户的身份并创建表单身份验证票
    此过程实现 btnLogon_Click 事件处理程序以验证用户的身份。对于已验证的用户,您将随后创建一个包含用户组列表的表单身份验证票。然后,将用户重定向到他们所请求的原始页面(在被重定向到登录页之前)。
    u验证用户的身份并创建表单身份验证票
    1.   返回到 Logon.aspx 表单并双击登录按钮以创建一个空的 btnLogon_Click 事件处理程序。
    2. 在文件顶部的现有 using 语句下面添加下面的 using 语句。它可提供对 FormsAuthentication 方法的访问。
     
    using System.Web.Security;
     
    3.   添加代码以创建初始化的 LdapAuthentication 类的新实例以指向 LDAP Active Directory如下面的代码所示。切记更改路径以指向 Active Directory 服务器。
     
    // Path to you LDAP directory server.
    // Contact your network administrator to obtain a valid path.
    string adPath = "LDAP://yourCompanyName.com/DC=yourCompanyName,DC=com";
    LdapAuthentication adAuth = new LdapAuthentication(adPath);
     
    4.   添加下面的代码以执行以下步骤
    a.对调用者进行 Active Directory 身份验证。
    b.检索用户所在的组列表。
    c.创建一个包含组列表的 FormsAuthenticationTicket
    d.加密该票。
    e.创建包含加密票的新 Cookie
    f.将该 Cookie 添加到返回到用户浏览器的 Cookie 列表中。
     
    try
    {
    if(true == adAuth.IsAuthenticated(txtDomainName.Text,
    txtUserName.Text,
    txtPassword.Text))
     {
    // Retrieve the user's groups
    string groups = adAuth.GetGroups();
    // Create the authetication ticket
    FormsAuthenticationTicket authTicket =
    new FormsAuthenticationTicket(1, // version
    txtUserName.Text,
    DateTime.Now,
    DateTime.Now.AddMinutes(60),
    false, groups);
    // Now encrypt the ticket.
    string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
    // Create a cookie and add the encrypted ticket to the
    // cookie as data.
    HttpCookie authCookie =
    new HttpCookie(FormsAuthentication.FormsCookieName,
    encryptedTicket);
    // Add the cookie to the outgoing cookies collection.
    Response.Cookies.Add(authCookie);
     
    // Redirect the user to the originally requested page
    Response.Redirect(
    FormsAuthentication.GetRedirectUrl(txtUserName.Text,
    false));
     }
    else
     {
    lblError.Text =
    "Authentication failed, check username and password.";
     }
    }
    catch (Exception ex)
    {
    lblError.Text = "Error authenticating." + ex.Message;
    }
     
     
    6. 实现身份验证请求处理程序以构造 GenericPrincipal 对象
    此过程在 global.asax 中实现 Application_AuthenticateRequest 事件处理程序,并给当前已验证的用户创建 GenericPrincipal 对象。它将包含用户所在组的一个列表,该组列表是从身份验证 Cookie 中包含的 FormsAuthenticationTicket 中检索而来的。最后,将 GenericPrincipal 对象与为每个 Web 请求创建的当前 HttpContext 对象关联起来。
    u实现身份验证请求处理程序以构造 GenericPrincipal 对象
    1.   使用解决方案资源管理器打开 global.asax.cs
    2.   将以下 using 语句添加到文件顶部。
     
    using System.Web.Security;
    using System.Security.Principal;
     
    3.   找到 Application_AuthenticateRequest 事件处理程序并添加以下代码,以便从用该请求传递的 Cookie 集合中获取包含加密 FormsAuthenticationTicket 的 Cookie。
     
    // Extract the forms authentication cookie
    string cookieName = FormsAuthentication.FormsCookieName;
    HttpCookie authCookie = Context.Request.Cookies[cookieName];
     
    if(null == authCookie)
    {
    // There is no authentication cookie.
    return;
    }
     
    4.   添加以下代码以便从该 Cookie 中提取并解密 FormsAuthenticationTicket
     
    FormsAuthenticationTicket authTicket = null;
    try
    {
    authTicket = FormsAuthentication.Decrypt(authCookie.Value);
    }
    catch (Exception ex)
    {
    // Log exception details (omitted for simplicity)
    return;
    }
     
    if (null == authTicket)
    {
    // Cookie failed to decrypt.
    return;
    }
     
    5.   添加以下代码以便解析出用户最初进行身份验证时附加到该票上的组名管道分隔列表。
     
    // When the ticket was created, the UserData property was assigned a
    // pipe delimited string of group names.
    String[] groups = authTicket.UserData.Split(new char[]{'|'});
     
    6.   添加以下代码以便使用从该票名获取的用户名来创建 GenericIdentity 对象并创建包含该标识和该用户组列表的 GenericPrincipal 对象。
     
    // Create an Identity object
    GenericIdentity id = new GenericIdentity(authTicket.Name,
    "LdapAuthentication");
     
    // This principal will flow throughout the request.
    GenericPrincipal principal = new GenericPrincipal(id, groups);
    // Attach the new principal object to the current HttpContext object
    Context.User = principal;
     
    7. 测试应用程序
    此过程使用 Web 应用程序来请求 default.aspx 页。您将被重定向到登录页以进行身份验证。在成功进行身份验证后,您的浏览器将被重定向到原来请求的 default.aspx 页。这将从 GenericPrincipal 对象(身份验证过程已将其与当前请求关联起来)提取并显示经身份验证的用户所属的组列表。
    u 测试应用程序
    1.   在“构建”菜单中,单击“构建解决方案”
    2.   在解决方案资源管理器中,右键单击 default.aspx,然后单击“在浏览器中查看”。
    3.   输入有效的域名、用户名和密码然后单击登录
    4.   如果身份验证成功您就会被重定向回 default.aspx。本页面上的代码应该显示经身份验证的用户的用户名。
    要查看经身份验证的用户所属的组的列表请在 global.aspx.cs 文件中的 Application_AuthenticateRequest 事件处理程序的结束处添加以下代码。
     
    Response.Write("Groups: " + authTicket.UserData + "<br>");
    展开全文
  • sharepoint 基于AD的Form表单身份验证

    千次阅读 2014-01-29 16:19:30
     默认情况,MOSS的身份验证是基于AD的...所以出于安全原因的考虑,大家就想到基于Form表单身份验证并将用户的验证的身份信息存储于数据库中,这样就可以解决原来在基于AD认证时带来的不方便!但将MOSS改为Form表
    
    默认情况,MOSS的身份验证是基于AD的,但是基于AD的用户身份验证较适合于企业的内部中使用,若要在外部网络环境下要访问MOSS网站那么基于AD身份验证的方式就不太适用了,因为要基于AD认证必须要开启些不必要的端口号,所以出于安全原因的考虑,大家就想到基于Form表单的身份验证并将用户的验证的身份信息存储于数据库中,这样就可以解决原来在基于AD认证时带来的不方便!但将MOSS改为Form表单身份验证的前提是需要用户自己创建用户信息,这样也挺麻烦的,有没有一种即可以像AD认证那样不用创建用户且还具有Form表单验证的功能呢?答案的是肯定。

      基于MOSS身份验证除了默认的AD认证,基于Form的表单验证,其实还有一种是基于AD的Form表单身份验证,下面就详细介绍下这种身份验证是如何进行的。。。。

      配置基于AD的Form身份验证所需的宿主Sharepoint网站集(如:http://tecpc:8001)是如何创建的相信大家应该都非常熟悉了,在这小弟就在唠叨了,哈哈。。。直接切入正题

      一、配置Web应用程序的里“身份验证提供程序”

      打开Sharepoint管理中心->应用程序管理->验证提供程序   页面并根据需要修改到相应的Web应用程序,如图1

      点击“默认”,打开编辑验证的页面

      1、修改“验证类型”栏处选择“表单”

      2、“匿名访问”栏处,根据用户需要是否启动网站的匿名访问功能

      3、在“成员身份验证提供程序”栏,输入成员身份验证提供程序名称:AspNetActiveDirectoryMembershipProvider ,这个名称须与Web应用程序所对应的Web.Config里的配置一样即可

      4、保存上述所做的配置

      如图2:

     

      在保存完上述所在的配置之后,返回到“验证提供程序”页面会发现原来的“默认”记录行里的成员身份提供程序名称栏处由原来的"Windows"变成了"AspNetActiveDirectoryMembershipProvider",Web应用程序完成上述这些步骤的配置后就完成了将其改为基于AD的Form表单的身份,你可以试着登录该网站,会发现被导航到输入用户名与密码的登录页面,如图3:

     

      你可试着输入用户名与密码,然后进行登录,会发现你已没有权限登录了就算换成administrator的账号来登录,也是报同样的错误没有权限登录,这是因为现在已将网站修改成了基于AD的Form表单身份验证而不是原来集成身份验证了,之前配置的用户信息是基于Windows的。

      下面还需要经过以下两个步骤的操作后即可解决上面所碰到的问题,请继续往下看吧。。。

      1、修改Web应用程序(http://tecpc:8001)的Web.Config

      打开Web应用程序在虚拟目录下对应的8001文件夹-->Web.Config

      在Web.config文件中的<system.web>一节上面,添加如下配置节:

    双击代码全选
    1
    2
    3
    <connectionStrings>
        <add name="ADCustomService" connectionString="LDAP://moss"/>
    </connectionStrings>

      其中"ADCustomService"是自定义的名称,将会被后面的配置节所用到。“moss”是所配置的AD的名称

      然后,需要在“<system.web>”节里面添加如下配置节:

    双击代码全选
    1
    2
    3
    4
    5
    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
     <providers>
    <add name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider,  System.Web, Version=2.0.0.0, Culture=neutral,   PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADCustomService" connectionProtection="Secure" applicationName="/_layouts/login.aspx"     connectionUsername="CONTOSOwssadmin"connectionPassword="ilove"             attributeMapUsername="sAMAccountName"         minRequiredPasswordLength="7"             minRequiredNonalphanumericCharacters="1"             attributeMapEmail="mail"       requiresQuestionAndAnswer="false" />
     </providers>
    </membership>

      注意: 

      1)name属性的值不要写错,要和前面一篇设置提供程序时的名称相同。

      2)connectionStringName的值要和上一步ConnectionStrings节中设置的名称相同。

      3)attributeMapUsername、attributeMapEmail的值都是AD中相应的属性名称。

      4) connectionUsername和connectionPassword的值是连接使用的账号与密码。

      5) minRequirePasswordLength和minRequiredNonalphanumericCharacters都是组策略的设置,要根据实际的设置填写。

      添加完成后,保存所做修改。

      2、修改Sharepoint管理中心应用程序的Web.Config,及修改8001端口的Web应用程序的策略

      Sharepoint管理中心应用程序的Web.Config的配置与上面的Web.Config配置的代码是一样,在这里我不就再贴出了,这里着重介绍下如何修改Web应用程序的策略以便添加用户权限。

      打开Sharepoint管理中心->应用程序管理-->Web 应用程序策略   根据需要修改Web应用程序,如图4:

     

      单击“添加用户”-->在选择区域处选择“默认”-->下一步-->在选择用户栏处选择相应的用户名,并在选择相应的权限-->完成,如图5:

     

      此时,在“Web的应用程序策略”界面中,我们就可以看到默认区域添加了一个完全控制的管理账户。同时,通过账户名称前缀,可以看出该账户是由我们的Provider提供的,这时再次访问网站输入用户名与密码后即可登录网站中。

      完成了这两步骤的配置后,就可以解决前面所碰到的登录时没有权限的问题了。

    展开全文
  • ASP.NET在IE9,IE10,IE11中Form表单身份验证失效问题解决方法已经研究出解决方案. IE9: 在web.config中的forms中增加name=”.xCookie”属性即可。IE10或IE11:在web.config中的forms中增加cookieless=”UseCookies”...

    ASP.NET在IE9,IE10,IE11中Form表单身份验证失效问题解决方法

    已经研究出解决方案.

    IE9:
    在web.config中的forms中增加name=”.xCookie”属性即可。

    IE10或IE11:

    在web.config中的forms中增加cookieless=”UseCookies”属性即可。

    这个是IE9,IE10,和IE11浏览器的bug问题,相信很多用FormsAuthenticationTicket来做验证的都会碰到这个问题。。。。。

    我自己的最后的是



    展开全文
  • 【JSP/SERVLET】Tomcat内置表单身份验证

    千次阅读 2015-06-16 12:19:59
    一下配置都是基于FROM表单身份验证的角度来说明的 为了更好的阅读,请重下网上看配置文件,谢谢合作! --> <!-- 和form-error-page不同的是,当在授权页面进行验证的时候,如果username是一个合法的认证...
  • 借助于 ASP.NET 表单身份验证,用户可通过在 Web 表单上输入凭据(用户名和密码)来表明自己的身份。在收到这些凭据后,Web 应用程序对照数据源检查用户名和密码以验证用户的身份。 本“如何做”介绍如何通过使用轻...
  • Form表单身份验证例子

    千次阅读 2008-02-29 16:02:00
    http://topic.csdn.net/t/20050830/10/4239405.html(转)步骤:一直对forms验证中的角色很模糊,不知道怎么搞,昨天晚上仔细看了下csdn的杂志,心里稍微有点底,今天早晨一上csdn,就看到思归大人回的一篇贴,是关于asp...
  • 设置基于表单身份验证公用计算机 Cookie 超时值 1.在客户端访问服务器上,使用 Exchange 管理员帐户登录,然后启动注册表编辑器 (regedit)。 2.在注册表编辑器中,找到以下注册表项:HKEY_LOCAL_MACHINE\...
  • 在填写以上信息之后、你要做的就是等待Google Adsense小组的核审、这个时间...表单之后、大概10分钟之后我就收到了Google Adsense小组给我发来的邮件、邮件内容写着、“感谢您发送身份证明、很高兴通知您、该证明符合...
  • 如果请求通过验证,系统将签发一个身份验证票据,在用户会话期间,这个票据维护用户的身份标识信息以及用户角色。通过FormsAuthentication 类可以访问用户的标识信息和角色。下面实现一个简单的Forms Authentication...
  • 基于表单身份验证

    2020-01-22 12:16:08
    目前用户的认证多半是基于表单的认证,基于表单的认证一般会使用 Cookie 来管理Session(Session会话,Session代表着服务器和客户端一次会话的过程,直到Session失效(服务端关闭)或者客户端关闭时结束)。基于表单...
  • 其实关于SharePoint 2013 表单身份验证网上已经有很多了,比如 SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用 和 Configuring Forms Based Authentication in ...
  • 普通身份验证与基于表单的拦截器、基于basic的拦截器身份验证的区别? 基于表单的拦截器身份验证和基于 Basic 的拦截器身份验证的区别 普通身份验证与基于表单的拦截器、基于basic的拦截器身份验证的区别?   ...
  • 身份验证——表单验证

    千次阅读 2006-12-29 14:46:00
    一、身份验证的三种模式: ASP.net下的身份验证模式有大致有三种,一是windows验证,就是每一个来访都都要求有一个windows帐号,这种验证是最安全的,但也是最昂贵的,因为你得为每一个来访用户添加一个windows帐号...
  • java web之基于表单身份验证

    千次阅读 2017-07-07 17:14:59
    1.web应用程序安全主要注意什么 ①阻止未授权的用户访问敏感的数据 ...身份验证简单方式采用post方式提交表单,用户名和密码。身份验证复杂方式采用X. ②防止攻击者从数据传输过程中窃取网络数据 2.什么是声明式安全
  • 身份验证

    2008-06-06 01:02:00
    请求安全性的事件流: 客户端-->iis进行客户端身份验证-->将经过验证的标记随客户端请求传送到asp.net工作进程-->根据iis经过的验证及配置设置决定是否处理请求ASP.NET的四种身份验证 1、表单身份验证:将未经身份...
  • 集成Windows身份验证(Windows身份验证中的一种)给开发者带来了许多方便,不过开发者必须把它部署在这样的环境中——要求所有客户机的用户账户必须存储于Windows域或活动目录中(对于一些公共类型的网站,是不太可能...
  • ASP.Net基于表单身份验证

    千次阅读 2009-03-11 21:52:00
    ASP.Net基于表单身份验证,可以防止用户跳过登录、直接输入URL访问页面,而且不像Session控制那样每个页面都得写代码。 第一步:配置web.config(web.config中一定要注意大小写,一般键是camelCasing风格,值是...
  • Asp.Net Core-身份验证

    千次阅读 2017-08-31 11:46:16
    ASP.NET Core身份框架用于实现表单身份验证。 有许多选项可供选择,以识别您的用户,包括Windows身份验证和所有第三方身份提供商,如Google,Microsoft,Facebook和GitHub等。 Identity框架是我们将在project....
  • 公司要采用sharepoint2016,采用表单验证后,怎么添加用户
  • APS.NET身份验证概念

    千次阅读 2005-10-24 12:27:00
    表单身份验证表单身份验证是指以下系统:将未经身份验证的请求重定向到一个超文本标记语言 (HTML) 表单,使用户能够在其中键入他们的凭据。在用户提供凭据并提交该表单后,应用程序对请求进行身份验证,然后系统以 ...
  • 验证用户身份成功,并登陆后台admin文件夹里的admin.aspx后台管理页面,否则禁止匿名用户访问项目中的admin文件夹里的任何一个文件 步骤一:  在根目录下的web.config中加入: system.web> ...
  • 身份验证表单验证),Cookies及对称加密(ASP.net-1.1)一、身份验证的三种模式: ASP.net下的身份验证模式有大致有三种,一是windows验证,就是每一个来访都都要求有一个windows帐号,这种验证是最安全的,但也...
  • HTTP 中的用户身份验证

    千次阅读 2018-08-29 10:30:43
      身份验证是判断客户端是否有资格访问资源的过程。HTTP 协议支持将身份验证作为协商访问安全资源的一种方式。   来自客户端的初始请求通常是匿名请求,不包含任何身份验证信息。 HTTP 服务器应用程序可以拒绝...
  • 动态添加input并动态添加新验证方式! 知识点: ...2 导入文件,注意事项我就不多说了在远程验证那篇我已经讲过。 3 用到的关键字:addField...且项目ajax的时候不是用的form表单提交,而是自己并接成json提交,所以x,y

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,912
精华内容 18,364
关键字:

表单身份验证