На Brock Allen's blog, он утверждает, чтоИспользования OnValidateIdentity для выполнения дополнительной проверки на печенье данных
класса CookieAuthenticationOptions имеет свойство Provider ... и он имеет свойство, которые делегируют вы можете подписаться. Это позволяет проверить cookie как это входит в приложение (OnValidateIdentity). В этом обратном вызове вы можете отклонить или заменить идентификатор .
Я новичок в Owin и C#, поэтому я изо всех сил, чтобы приспособить много примеров OnValidateIdentity
, которые я нашел в Интернете, чтобы удовлетворить свои потребности. После того, как печенье был принят как действует на каждом «частном» веб-страницы, я хотел бы проверить следующие вещи:
- Печенье содержит, по меньшей мере, один иск
- Значение претензии CustomerId больше ноль
Я могу выполнить эти две проверки обычным способом, но я не могу понять, как подключить логин к OnValidateIdentity
. Вот что я до сих пор:
Я написал код, но не могу понять, что нужно вернуть из используемого метода.
public void Configuration(IAppBuilder app)
{
dynamic cookieExpirationPeriod = TimeSpan.FromMinutes(60);
CookieAuthenticationProvider prov = new CookieAuthenticationProvider();
prov.OnValidateIdentity = ctx =>
{
MyClaimsIdentityObject si = MyApp.Identity.Current();
if (si == null || si.UserId == 0 || si.CustomerId == 0) {
ctx.RejectIdentity();
// what needs to happen here for a return value?
}
};
CookieAuthenticationOptions coa = new CookieAuthenticationOptions {
AuthenticationMode = AuthenticationMode.Active,
CookieName = "MyApp",
ExpireTimeSpan = cookieExpirationPeriod,
SlidingExpiration = true,
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/login.aspx"),
CookieHttpOnly = true,
Provider = prov
};
if (HttpContext.Current.Request.IsLocal) {
coa.CookieSecure = CookieSecureOption.Never;
} else {
coa.CookieSecure = CookieSecureOption.Always;
}
app.UseCookieAuthentication(coa);
}
Там есть полный пример здесь достигает нечто подобное тому, что мне было нужно: http://stackoverflow.com/questions/25780551/extending-cookieauthenticationprovider- onvalidateidentity – EvilDr