Ajo që do të doja të bëja është nëse një përdorues nuk është ruajtur ende në bazën e të dhënave, atëherë ai duhet të ridrejtohet në një faqe tjetër (të themi Google për momentin). Problemi është se nuk mund të përdor answer.redirect në bllokun tim catch {}. Ajo që ndodh është nëse përdoruesi nuk është në rol, atëherë një faqe gabimi që thotë "Referenca e objektit nuk është caktuar në një shembull të një objekti". Me gjurmën e pirgut të përfshirë. Ky është kodi që kam në klasën time të autorizimit:
public override string[] GetRolesForUser(string username)
{
try
{
if (securityDB.Database.Connection.State == System.Data.ConnectionState.Closed)
{
securityDB.Database.Connection.Open();
}
USER user = securityDB.USERs
.Where(o => o.USER_NAME == username)
.FirstOrDefault();
var roles = from ur in user.USER_ROLE
from r in securityDB.ROLEs
where ur.ROLE_ID == r.ID
select r.ROLE_NAME;
if (roles != null)
return roles.ToArray();
else
return new string[] { }; ;
}
catch (Exception ex)
{
//Reroute user to www.google.com
Debug.WriteLine(ex.Message);
throw;
}
//return new string[] { };
}