У меня есть приложение mvc5 с пользовательским логином. Ничего сумасшедшего, я просто получаю имя пользователя и пароль от MongoDB, затем я делаю свою проверку.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login ( LoginViewModel vm )
{
try
{
if ( !ModelState.IsValid )
return View ( );
var db = new MongoDb ( );
var user = db.GetUser ( vm.Email.Trim ( ) );
if ( user == null )
return View ( "Home" );
string oldHash = user.Hash;
byte [ ] salt = user.Salt;
bool isLogin = Security.CompareHashValue ( vm.Password, vm.Email, oldHash, salt );
if ( !isLogin )
{
TempData [ "ErrorMSG" ] = "Access Denied! Wrong Credential";
return View ( vm );
}
SignInRemember ( vm.Email, vm.RememberMe );
FormsAuthentication.SetAuthCookie ( vm.Email, false );
Session [ "User" ] = vm;
return RedirectToAction ( "Index", "Dashboard" );
Теперь, пока я не в том же контроллере, isAuthenticated имеет значение true, но когда я go делаю Dashboard / Index
class Dashboard {
...
public ActionResult Index()
{
bool auth = User.Identity.IsAuthenticated;
ложно, и если я использую декоратор [Authorized]
, пользователь не сможет получить доступ к ActionResult
.
Я думаю, что все правильно, но я хотел бы, чтобы все работало: -)