我有一個互聯網應用程序,連接用戶與Windows身份驗證,當用戶來到辦公室和登錄到Windows會話(與AD信息),他們自動登錄到Web應用程序,我用Windows authentication
爲了達成這個。Windows身份驗證和SQLRoleProvider MVC3
所以當我使用@User.Identity.Name
它顯示用戶名。現在,如果我想要做的用戶名類似Roles.AddUserToRole(username, "RoleName");
它拋出一個異常The user 'Domain\user' was not found.
我的觀點:
@using (Html.BeginForm("AddToRH", "Account", FormMethod.Post))
{
<div class="form_settings">
<p>
<span>
@User.Identity.Name
@Html.Label("Username") :
</span>
@Html.Editor("username")
</p>
<p style="padding-top: 15px">
<span> </span>
<input type="submit" value="Enregister" class="submit" />
</p>
</div>
}
我的控制器:
public ActionResult AddToRH(string username) {
string[] roles = Roles.GetAllRoles();
Boolean contains = false;
foreach (string role in roles)
{
if(role.Equals("RoleName")){
contains=true;
}
}
if (!contains) {
Roles.CreateRole("RoleName");
}
Roles.AddUserToRole(username, "RoleName");
return RedirectToAction("Index","Home");
}
我的web.config:
<authentication mode="Windows">
</authentication>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
</providers>
</membership>