Update 07082021
This commit is contained in:
100
WebFormApp/Models/IdentityModels.cs
Normal file
100
WebFormApp/Models/IdentityModels.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
using System;
|
||||
using System.Security.Claims;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Microsoft.AspNet.Identity;
|
||||
using Microsoft.AspNet.Identity.EntityFramework;
|
||||
using Microsoft.AspNet.Identity.Owin;
|
||||
using Microsoft.Owin.Security;
|
||||
using WebFormApp.Models;
|
||||
|
||||
namespace WebFormApp.Models
|
||||
{
|
||||
// Sie können Benutzerdaten für den Benutzer hinzufügen, indem Sie der User-Klasse weitere Eigenschaften hinzufügen. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?LinkID=317594.
|
||||
public class ApplicationUser : IdentityUser
|
||||
{
|
||||
public ClaimsIdentity GenerateUserIdentity(ApplicationUserManager manager)
|
||||
{
|
||||
// Beachten Sie, dass der "authenticationType" mit dem in "CookieAuthenticationOptions.AuthenticationType" definierten Typ übereinstimmen muss.
|
||||
var userIdentity = manager.CreateIdentity(this, DefaultAuthenticationTypes.ApplicationCookie);
|
||||
// Benutzerdefinierte Benutzeransprüche hier hinzufügen
|
||||
return userIdentity;
|
||||
}
|
||||
|
||||
public Task<ClaimsIdentity> GenerateUserIdentityAsync(ApplicationUserManager manager)
|
||||
{
|
||||
return Task.FromResult(GenerateUserIdentity(manager));
|
||||
}
|
||||
}
|
||||
|
||||
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
|
||||
{
|
||||
public ApplicationDbContext()
|
||||
: base("DefaultConnection", throwIfV1Schema: false)
|
||||
{
|
||||
}
|
||||
|
||||
public static ApplicationDbContext Create()
|
||||
{
|
||||
return new ApplicationDbContext();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region Hilfsprogramme
|
||||
namespace WebFormApp
|
||||
{
|
||||
public static class IdentityHelper
|
||||
{
|
||||
// Wird für XSRF beim Verknüpfen externer Anmeldungen verwendet.
|
||||
public const string XsrfKey = "XsrfId";
|
||||
|
||||
public const string ProviderNameKey = "providerName";
|
||||
public static string GetProviderNameFromRequest(HttpRequest request)
|
||||
{
|
||||
return request.QueryString[ProviderNameKey];
|
||||
}
|
||||
|
||||
public const string CodeKey = "code";
|
||||
public static string GetCodeFromRequest(HttpRequest request)
|
||||
{
|
||||
return request.QueryString[CodeKey];
|
||||
}
|
||||
|
||||
public const string UserIdKey = "userId";
|
||||
public static string GetUserIdFromRequest(HttpRequest request)
|
||||
{
|
||||
return HttpUtility.UrlDecode(request.QueryString[UserIdKey]);
|
||||
}
|
||||
|
||||
public static string GetResetPasswordRedirectUrl(string code, HttpRequest request)
|
||||
{
|
||||
var absoluteUri = "/Account/ResetPassword?" + CodeKey + "=" + HttpUtility.UrlEncode(code);
|
||||
return new Uri(request.Url, absoluteUri).AbsoluteUri.ToString();
|
||||
}
|
||||
|
||||
public static string GetUserConfirmationRedirectUrl(string code, string userId, HttpRequest request)
|
||||
{
|
||||
var absoluteUri = "/Account/Confirm?" + CodeKey + "=" + HttpUtility.UrlEncode(code) + "&" + UserIdKey + "=" + HttpUtility.UrlEncode(userId);
|
||||
return new Uri(request.Url, absoluteUri).AbsoluteUri.ToString();
|
||||
}
|
||||
|
||||
private static bool IsLocalUrl(string url)
|
||||
{
|
||||
return !string.IsNullOrEmpty(url) && ((url[0] == '/' && (url.Length == 1 || (url[1] != '/' && url[1] != '\\'))) || (url.Length > 1 && url[0] == '~' && url[1] == '/'));
|
||||
}
|
||||
|
||||
public static void RedirectToReturnUrl(string returnUrl, HttpResponse response)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(returnUrl) && IsLocalUrl(returnUrl))
|
||||
{
|
||||
response.Redirect(returnUrl);
|
||||
}
|
||||
else
|
||||
{
|
||||
response.Redirect("~/");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
Reference in New Issue
Block a user