NET Identity в web.configC#

Место общения программистов C#
Ответить
Anonymous
 NET Identity в web.config

Сообщение Anonymous »

У нас есть старый веб-сайт (.NET Framework, веб-приложение), который был создан много лет назад и над которым мы до сих пор ведем постоянную разработку. Поскольку у нас нет достаточно времени, чтобы все переписать, я хочу создать новый веб-сайт рядом с этим и постепенно перемещать функциональность.
Однако я хочу повторно использовать некоторые, если не все, библиотеки классов. Большинство этих библиотек невозможно перенаправить на стандарт .net, поскольку они содержат ссылки на наш пользовательский объект. Этот пользовательский объект реализует MembershipUser... который, конечно, больше не доступен в Core.
Таким образом, они, похоже, реализовали MembershipUser, но почти все сделали на заказ, большинство функций в членстве. не были реализованы, только некоторые.
Я хочу тратить как можно меньше времени на этот старый веб-сайт, поэтому вот что я попробовал:
Я установил пакеты Microsoft.AspNet.Identity.Core (и Owin, где это необходимо, я выбираю их, потому что они должны работать как с .NET Framework, так и с Core). Удалена производная от MembershipUser в объекте пользователя, и вместо этого она производна от IdentityUser. IdentityUser — это пользовательский класс, который я унаследовал от IUser.
Я удалил наш пользовательский класс членства, который является производным от MembershipProvider (который реализовал лишь несколько функций). И я создал класс, производный от UserStore, а также от UserPasswordStore. Пока все хорошо (я думаю).
Сейчас у меня возникают трудности с этим фрагментом кода:

Код: Выделить всё

private void SetAuthTicket(HttpContext httpContext, string username)
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, username, DateTime.Now, DateTime.Now.AddMinutes(SessionDuration), true, FormsAuthentication.FormsCookiePath);
string ticketHash = FormsAuthentication.Encrypt(ticket);
HttpCookie ticketCookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticketHash);
ticketCookie.Expires = DateTime.Now.AddMinutes(SessionDuration); //--> Removed Double duration possible loginbug cause//Double session duration because sliding only updates after half the exp time has been exceeded
httpContext.Response.Cookies.Add(ticketCookie);
int uid = ((User)HttpContext.Current.User).Id;

string hostName = Dns.GetHostName(); // Retrieve the Name of HOST
var IPAddress = Dns.GetHostEntry(hostName).AddressList[Dns.GetHostEntry(hostName).AddressList.Length-1].ToString();
var externalIp = getExternalIP();
var UserAgent = HttpContext.Current.Request.UserAgent;

LoginTicket dbticket = new LoginTicket()
{
CreatedBy = new EntityReference(uid),
Ticket = ticketHash,
UserId = uid,
UserAgent = UserAgent,
IPaddress = IPAddress,
ExternalIPaddress = externalIp?.ToString()
};
DBA.Save(dbticket);

}
Поскольку FormsAuthenticationicket и FormsAuthentication исчезли в Core/Standard, как мне это переписать? Я хочу сохранить аутентификацию файлов cookie на старом веб-сайте. Но при поиске в Google я нахожу только функцию HttpContext.SignInAsync(), которая находится в сборках Microsoft.AspNetCore.Identity. Который я не использовал, потому что мне нужна была совместимость с .NET Framework. И все курсы/видео, которые я нахожу, основаны на функциональности MVC, в то время как мы используем веб-приложение и, следовательно, web.config.
Может ли кто-нибудь указать мне направление хорошего руководства или объяснить, как это сделать? пойти на это?

Подробнее здесь: https://stackoverflow.com/questions/792 ... web-config
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»