Я использую ASP.net MVC. Поэтому я хочу установить роль пользователя в тоске.Как установить роль пользователя в MVC?
Так что это мой контроллер
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
var user = GetuserByname(model.UserName);
if (user.ToList().Count == 1)
{
string dbPassword = user.First().UserPassword.ToString();
string enterPassword = CreatePasswordHash(model.Password, user.First().Salt.ToString());
if (dbPassword.ToString().Trim() == enterPassword.ToString().Trim())
{
FormsAuthentication.SetAuthCookie(user.First().tblUserRole.RoleName, model.RememberMe);
Session["logged"] = user.First().Username;
string roleName = user.First().tblUserRole.RoleName;
Roles.AddUserToRole(model.UserName, roleName);
return RedirectToAction("Index", "Home");
}
}
}
return View(model);
}
Это мой WebConfig файл
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="ApplicationServices1" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
<add name="SKGEntities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=(local);Initial Catalog=SKG;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
<authentication mode="Forms">
<forms loginUrl="~/Login/LogOn" timeout="2880" />
</authentication>
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="3" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
</configuration>
Но есть ошибка, и это говорит ...
сеть связанных или экземпляр -специфическая ошибка при установлении соединения с SQL Server
... Я не знаю, как это исправить.
Кроме того, как я могу установить ...
Roles.AddUserToRole(xxx, yyy);
... в мой контроллер?
спасибо.
Итак, по отдельной теме ... просто слово совета, очистка вашего кода контроллера, чтобы сделать его немного более читаемым, действительно поможет следующему парню по дороге. Вот предложение, возьмите его с солью (не каламбур). Это просто предложение, которое может помочь вам ... https://gist.github.com/ChaseFlorell/5218298 –
@Chase: это не был каламбур в первую очередь. – Dai
@ Дай читает код OP 'model.Password, user.First(). Salt.ToString())' ... ОК, это не совсем понятно, и я определенно не смешон ... –