Для установить cookie:
FormsAuthentication.SetAuthCookie(theUserID, true);
А потом вернуть:
string userId = HttpContext.Current.User.Identity.Name;
Если вы беспокоитесь о безопасности, вы можете рассмотреть возможность использования только безопасных файлов cookie (вы сможете читать эти файлы cookie только через https).
Более подробная информация об этом содержится в соответствующем сообщении: Ручное управление доступом в ASP. Нетто
Обновление: Согласно вашему комментарию, вы не думаете, что можете установить файл cookie проверки подлинности с помощью форм в своей пользовательской форме входа. Итак, я создал пустой проект ASP.NET 4, в котором я создал собственный логин - он будет входить в систему любого неаутентифицированного пользователя. Вот три части:
web.config
(в вашем проекте должно быть что-то подобное, поскольку на вашем сайте есть форма, в которой люди входят в систему):
<authentication mode="Forms"></authentication>
Кодовый фронт:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="emptyWebApp._default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Username: <asp:Label ID="_username" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Код позади:
using System;
using System.Web;
using System.Web.Security;
namespace emptyWebApp
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
_username.Text = HttpContext.Current.User.Identity.Name;
}
else
{
_username.Text = "Not logged in";
FormsAuthentication.SetAuthCookie("CookieMan", true);
}
}
}
}
Как видите, вы можете установить файл cookie аутентификации, используя FormsAuthentication.SetAuthCookie
в вашей собственной функции аутентификации, даже такой иррациональной, как эта.
В этом случае, когда они впервые попадают на страницу, отображается Username: Not logged in
, а затем они регистрируются как «CookieMan». При обновлении страницы будет отображаться Username: CookieMan
.
person
MikeSmithDev
schedule
17.02.2013