多年来,我global $var,$var2,...,$varn在我的应用程序中使用了方法.我已将它们用于两个主要实现:
获取已设置的类(例如数据库连接),并将信息传递给显示到页面的函数.
例:
$output['header']['log_out'] = "Log Out";
function showPage(){
global $db, $output;
$db = ( isset( $db ) ) ? $db : new Database();
$output['header']['title'] = $db->getConfig( 'siteTitle' );
require( 'myHTMLPage.html' );
exit();
}
Run Code Online (Sandbox Code Playgroud)
但是,这样做会产生性能和安全后果.
我可以使用哪种替代实践来维护我的功能,但改进设计,性能和/或安全性?
这是我曾经问过的第一个问题,所以如果你需要澄清请注释!
我的WebAPI 2应用程序有一个自定义授权过滤器,用于检查访问令牌.如果令牌存在,并且API具有该属性,那么我检查是否存在映射到该令牌的用户.
由于API的性质,大多数方法在特定用户的上下文中运行(即"POST api/profile"以更新用户的配置文件).为了做到这一点,我需要从访问令牌获得的目标用户信息.
[当前实现,发生在AuthorizeAttribute类型的属性中]
if( myDBContext.MyUsers.Count( x => x.TheAccessToken == clientProvidedToken ) ){
IPrincipal principal = new GenericPrincipal( new GenericIdentity( myAccessToken ), new string[] { "myRole" } );
Thread.CurrentPrincipal = principal;
HttpContext.Current.User = principal;
return true;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,然后我可以使用访问令牌在方法中进行第二次查找.但由于我已经在auth时间进行查找,所以我不想浪费另一个DB调用.
[我想做什么(但显然不起作用)]
MyUser user = myDBContext.MyUsers.FirstOrDefault( x => x.TheAccessToken == clientProvidedToken );
if( user != null ){
// Set *SOME* property to the User object, such that it can be
// access in the body of my controller method
// …Run Code Online (Sandbox Code Playgroud) 尝试在" 发布Web"对话框中启用更新数据库的情况下部署到SQL Azure时,出现以下错误:
远程主机没有安装dbDacFx Web Deploy提供程序,这是数据库发布所必需的.要了解有关此更多信息,请访问此链接.
FWLink:http://go.microsoft.com/fwlink/?LinkId = 246068
使用: Visual Studio 2012 RTM,SQL Server 2012,Windows 7旗舰版
项目类型: MVC 4.0(API)
连接字符串:
Server=tcp:SERVER.database.windows.net,1433;Database=DB_NAME;User ID=Me@Server;Password=PASSWORD;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;
Run Code Online (Sandbox Code Playgroud)
其他:防火墙端口对我的测试IP开放.源DB托管在本地实例上.目标数据库最初设置为新的"预览"模式,但我也在标准下复制了它.没有使用EntityFramework(不允许"更新数据库").发布时禁用防火墙,没有效果.
我目前正在使用自定义URI方案来验证使用OAuth的用户.为此,我需要从查询字符串中获取某些参数的值.
有没有一种简单的方法来获取这些信息?或者是我使用REGEX或其他字符串操作的唯一选择?
我以前发现了对ParseQueryString之类的引用,但这些引用包含在Windows Phone上不可用的库中.
为什么警告打印2在下面的例子中?var a未知函数n ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Test Doc</title>
<script type="text/javascript">
var a = 1;
function f() {
var a = 2;
function n() {
alert(a);
}
n();
}
f();
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) c# ×2
.net ×1
azure ×1
function ×1
javascript ×1
performance ×1
php ×1
public ×1
query-string ×1
scope ×1
security ×1
sql ×1
uri ×1