我的控制器中有一些像这样的方法
public void Audittrail()
{
try
{
AUDITTRAIL audittrail = new AUDITTRAIL();
audittrail.PROGNAME = "PrimaryMarket";
audittrail.PROGOPTION = Convert.ToString(Session["PROGOPTION"]);
audittrail.IOTIME = DateTime.Now;
audittrail.LOGUSER = Convert.ToDecimal(Session["UserId"]);
audittrail.IPSMSDATE = db.DTTRACKs.Max(z => z.CURRDATE);
db.AUDITTRAILs.Add(audittrail);
db.SaveChanges();
}
catch (Exception e)
{
ExceptionLogging.SendErrorToText(e);
Response.Redirect("/Account/Error/");
}
}
我的控制器名称是Customer 如果用户输入这样的URL http://localhost:49537/Customer/AudiTrail 这个动作被调用, 那么我该怎么做呢? 使用MVC5
答案 0 :(得分:1)
使用function enable() {
document.getElementById("DropDownList1").disabled = false;
document.getElementById("DropDownList2").disabled = false;
return;
}
function disable() {
document.getElementById("DropDownList1").disabled = true;
document.getElementById("DropDownList2").disabled = true;
}
and pageloadlogic:public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
属性。这可以通过在浏览器中输入其URL来阻止访问此方法。在您的代码中,您应该使用POST调用它。
对于只返回某些内容的方法使用GET;将POST用于更新内容的方法。
答案 1 :(得分:0)
你可以为此编写一个动作过滤器,我创建了' CheckOwnerActionFilter':
public class CheckOwnerActionFilter : ActionFilterAttribute, IActionFilter
{
AppDbContext db = new AppDbContext();
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
int userId = AppUserManager.GetUserId();
var userEntity = db.UserProfiles.FirstOrDefault(t => t.UserId == userId);
if (userEntity != null)
{
//Its means authorized
}
else
{
HttpContext.Current.Response.Redirect("~/unauthorize/index");
}
}
}
创建完成后,您可以将其添加到控制器的方法中,如下所示:
[HttpGet]
[CheckOwnerActionFilter]
public void Audittrail()
{
}
在此之后,您将要求此方法,它将首先进入操作过滤器' CheckOwnerActionFilter',您可以在那里检查userid或您想要的其他参数的授权。 它会很好用,对于这类问题,这也是标准格式。
答案 2 :(得分:-1)
您可以添加新功能以检查当前用户是否可以通过此操作:
public void Audittrail()
{
if(isCurrentUserAuthorized())
{
try
{
AUDITTRAIL audittrail = new AUDITTRAIL();
audittrail.PROGNAME = "PrimaryMarket";
audittrail.PROGOPTION = Convert.ToString(Session["PROGOPTION"]);
audittrail.IOTIME = DateTime.Now;
audittrail.LOGUSER = Convert.ToDecimal(Session["UserId"]);
audittrail.IPSMSDATE = db.DTTRACKs.Max(z => z.CURRDATE);
db.AUDITTRAILs.Add(audittrail);
db.SaveChanges();
}
catch (Exception e)
{
ExceptionLogging.SendErrorToText(e);
Response.Redirect("/Account/Error/");
}
}
else
Response.Redirect("/Account/Default/");
}