1

我正在开发一个项目,其管理员可以访问所有表单控件,但其他人不能。我怎样才能实现这个?

一个想法是,当用户想要使用管理员登录时,在登录软件之前必须检查互联网服务是否可用,如果互联网服务可用,然后邮寄必须从谷歌服务器选择的时间,并用登录信息邮寄该时间。因此管理员必须提醒有人使用您的帐户登录。

但是,如果那里没有可用的互联网服务,则将该信息保存在一个文本文件中,该文件必须放在系统中,当服务可用时,管理员只需获取该日志文件并询问用户谁使用管理员登录?

4

1 回答 1

0

我认为如果您在应用程序中使用日志记录并将其配置为在访问包含敏感信息的页面时执行您想要的任何操作,那会更好。您可以使用log4netMicrosoft Enterprise Library Logging Application BlockELMAH。这样,您可以将信息存储在文本或 Xml 文件、数据库、发送电子邮件等中。

C#使用示例log4net

private static log4net.ILog oLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(model.UserName, model.Password))
        {
            FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
            if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
            {
                if (this.User.IsInRole("Administrators"))
                {
                    oLog.Info("Administrator logged in.");
                }
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        else
        {
            ModelState.AddModelError("", "The user name or password provided is incorrect.");
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}
于 2013-02-24T06:15:44.647 回答