我在服务器上创建了一个将访问某些数据库的新用户.
但是当我去备份或恢复数据库时,我得到错误:
C:\ Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup
无法访问服务器上的指定路径或文件.验证您是否具有必要的安全权限以及路径或文件是否存在.....................
错误显示在我的系统中的任何其他路径.即使是那些用户和服务帐户具有完全控制权限的用户.
但是,如果我输入完整路径并单击确定,它会抱怨它无法显示,但它会备份或恢复数据库.只是不显示路径的树视图.
如果我使用该sa帐户执行操作,该对话框将显示所有路径而无需投诉.
PS:已经添加了该db_backoperator角色的用户.
需要什么权限?
我需要编写一个代码,可以拦截某个按钮(asp按钮)的单击而不是执行某些代码,如果方法返回true,则调用原始单击.
所以要点是:
1-我不知道如何保存原始点击.
2-确定单击的按钮.
例如:
protected void Page_Load(object sender, EventArgs e)
{
var b = getButtonThatWasClicked();
var originalClick = b.Click;
if(callSomeMethod(b))
originalClick(null,null);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
好设法得到点击这样做的按钮...现在我需要阻止原来的点击被调用.下面的方法没有奏效.即使重写原始点击到新的处理程序,旧的处理程序也会被调用并执行.事情ASP.NET读取它并制作类似调用事件的堆栈来调用.即使处理程序更改堆栈中的旧仍然.
public void ButtonsTestMethod()
{
var listOfButtons = listaDeBotes.Where(b => b.CommandName != "");
foreach (var button in listOfButtons)
{
if (Request.Form[button.UniqueID] != null)
{
var buttonFromRequest = Request.Form[button.UniqueID];
if (buttonFromRequest == null)
continue;
if (button.CommandName != "xxx")
{
//validate things
//if(TemPermissao(Tela,GetAcaoDoBotao(botao.CommandName)))
//if(!canexecuteSomething())
button.Click += new EventHandler(defaultClick);
}
}
}
}
void defaultClick(object sender, EventArgs e)
{ …Run Code Online (Sandbox Code Playgroud) 我有一个继承的类ActionFilterAttribute.
它解密了调用者加密的请求中的一些查询字符串属性.这可以确保我的WebAPI方法只接收"好"参数.这很好用.
如果参数未加密,我需要做的并且没有成功的是否定/失败上下文(请求).
如何强制终止请求?我正在做我的逻辑:
public override void OnActionExecuting(ActionExecutingContext context)
Run Code Online (Sandbox Code Playgroud)
已经尝试将响应设置为401,但这不起作用:
//Negate the access by default
context.HttpContext.Response.StatusCode = 401;
Run Code Online (Sandbox Code Playgroud)