我有一个非常简单的ASP.NET MVC 4应用程序,我可以通过WebDeploy轻松地将它发布到我的本地或内部IIS.
部署到Azure网站在我的本地计算机和Visual Studio上按预期工作:
如果我通过命令行执行此操作,则会收到ERROR_USER_UNAUTHORIZED:
msbuild.exe My.Web.csproj /p:DeployOnBuild=true /p:PublishProfile="azure-web - Web Deploy" /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)
我可以指定一个/p:Password=???参数,但在哪里可以设置此密码?我只能下载或重置发布配置文件.发布配置文件xml中包含加密密码,似乎只有Visual Studio才能读取它.
对于FTP/Git发布,有"部署用户",但我不能使用FTP发布,因为目前命令行不支持它(这是我得到的例外),这个用户与Web部署无关.
有任何想法吗?
我有一个启用了Git的ASP.NET WebApp,其中包含一个关联的Azure WebJob.当我通过Visual Studio部署它时,一切都很好,但在连续交付环境中这有点难,所以我想通过Git发布Web App和WebJob.
通过Azure工具我关联了我的WebJob项目,我在WebApp项目中获得了一个"webjobs-list.json"文件:
{
"$schema": "http://schemastore.org/schemas/json/webjobs-list.json",
"WebJobs": [{
"filePath": "../CodeInside.Hub.Job/CodeInside.Hub.Job.csproj"
}]
}
Run Code Online (Sandbox Code Playgroud)
在Console App Project中,我得到了一个带有以下内容的"webjob-publish-settings.json"文件:
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "Hub-Crawler",
"startTime": "2014-11-25T02:00:00+01:00",
"endTime": null,
"jobRecurrenceFrequency": "Day",
"interval": 1,
"runMode": "Scheduled"
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,"runMode"设置为"Scheduled",当我通过Visual Studio部署它时一切正常.
但是没有Visual Studio我得到了这个"按需"的WebJob:

这是目前不支持或可能是什么问题?
此问题与此相关:运行Azure WebJob而不使用队列
我的场景:我只想每小时将一个文件写入blob存储,不需要任何队列系统.从前一个问题我得到了这个代码 - 它第一次被触发时工作正常:
[NoAutomaticTrigger]
public static void DoWork([Blob("container/foobar.txt")] TextWriter writer)
{
writer.Write("Hello World " + DateTime.Now.ToShortTimeString())"
}
static void Main()
{
JobHost host = new JobHost();
host.Call(typeof(Program).GetMethod("DoWork"));
host.RunAndBlock();
}
Run Code Online (Sandbox Code Playgroud)
网站运行"AlwaysOn = true",webjob一直在"运行",但现在调度程序抛出了以下错误 - 没有任何反应:"由于作业已经运行,无法启动新的运行."
目前的结果是文件只写了一次.如果我将"AlwaysOn"切换为false,它"工作",但它似乎很脏,因为如果没有Always on the job结果是"Aborted".
背景:最近我从"旧"世界切换到新的project.json世界,因为新的总是更好;)目前3个项目中有2个可以使用"dotnet"目标框架名字对象,另一个需要完整的.NET框架(net46).
我还将我的测试项目切换到新的project.json世界,但我无法进行任何测试.构建是绿色的,但没有找到测试.
我阅读了这个文档并包含了xunit.runner.dnx,但问题是它不是"dnx"项目 - 它依赖于"dotnet"或"net46"而且当前的运行者似乎没有找到试验.
该项目可在GitHub上获得.
xunit.runner.dnx包中的错误:
错误项目Sloader.Config.Tests中的依赖项xunit.runner.dnx 2.1.0-beta5-build169不支持框架.NETPlatform,Version = v5.0.Sloader.Config.Tests C:\ Users\Robert\Documents\GitHub\Sloader\tests\Sloader.Config.Tests\project.json 20 IntelliSense
这是目前不支持还是我错过了什么?谢谢!
我们目前正在处理一个ASP.NET MVC项目中的一些XSS问题.我发现了两个问题 - 第一个问题与我们的请求验证模式有关.攻击者现在可以使用此安全漏洞删除数据库中的一些不良内容.
第二个问题是我们如何显示这个内容,我们使用Html.DisplayTextFor方法,它似乎"破碎".
只需创建一个新的MVC 3 WebApp,将其放在HomeController中:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "<SCRIPT/XSS SRC=\"htpp://ha.ckers.org/css.js\">";
User foo = new User();
foo.Name = "<SCRIPT/XSS SRC=\"htpp://ha.ckers.org/css.js\">";
return View(bla);
}
public ActionResult About()
{
return View();
}
}
public class User
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
风景:
@Html.TextBoxFor(m => m.Name) <br/> ||| <-- will be encoded
@Html.Encode(ViewBag.Message)<br/> ||| <-- will be double encoded
@Model.Name <br/> ||| <-- will be encoded
@Html.DisplayTextFor(m => …Run Code Online (Sandbox Code Playgroud) 与此问题相关,我在ASP.NET MVC项目中使用XSS问题,并且与MvcHtmlSTring.ToHtmlString()方法混淆.从文档 "返回表示当前对象的HTML编码字符串.",但它在我的情况下不起作用:
var mvcHtmlString = MvcHtmlString.Create("<SCRIPT/XSS SRC=\"htpp://ha.ckers.org/css.js\">").ToHtmlString();
var encoded = HttpUtility.HtmlEncode("<SCRIPT/XSS SRC=\"htpp://ha.ckers.org/css.js\">");
Run Code Online (Sandbox Code Playgroud)
输出mvcHtmlString
<SCRIPT/XSS SRC="htpp://ha.ckers.org/css.js">
Run Code Online (Sandbox Code Playgroud)
输出编码< - 这是我怀疑的行为!
<SCRIPT/XSS SRC="htpp://ha.ckers.org/css.js">
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我有以下设置:
具有应用程序注册的 AAD 目录 A。应用程序注册被标记为多租户应用程序,并且默认情况下没有请求权限:
在登录期间,我的 web 应用程序会像这样重定向到 Microsoft 登录(随机数和重定向 uri 被删除):
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=05f0df69-2f61-4b41-91ff-31656787f9d3
&redirect_uri=https%3A%2F%2F....azurewebsites.net%2Fids%2Foidc-signin-office365auth
&response_type=code%20id_token&scope=openid%20profile%20email%20User.Read%20offline_access%20User.ReadBasic.All
&response_mode=form_post
&nonce=...
Run Code Online (Sandbox Code Playgroud)
范围是:
我的测试用户位于 AAD 目录 B 中(并且没有任何特殊设置,只有管理员才能同意应用程序)。当我尝试登录我的应用程序时,结果如下:
范围“User.ReadBasic.All”不需要管理员同意,但不知何故,当我删除此请求的范围时,用户可以在没有任何管理员同意的情况下登录到应用程序。
问题是:为什么管理员同意会显示在“User.ReadBasic.All”范围内?
目标是“普通”用户可以登录我们的应用程序,而无需麻烦管理员的租户广泛批准。对于“多租户”应用程序,“需要管理员同意”是否有所不同?
我创建了一个新的 Azure 网站(代码部署),并通过 Kudu 站点注意到,文件现在位于C:\而不是D:\,例如,这是来自 Kudu 站点:
C:\homeC:\local\Temp\一周前,我以为我所有的东西都位于D:\homeetc上。
我问这个问题是因为我们通过 Zip-Deployment 选项部署 WebJob,并且需要设置配置文件的绝对路径,该文件现在位于“错误”的驱动器上。
Kudu 文档也用于D:所有值。
最近这种情况有改变吗?这不是一个大问题,但我想了解为什么。
我正在使用Web作业sdk玩一点,我只需要通过调度程序调用一个方法,它应该将1-n文件写入存储.WebJobs SDK的优点在于我不需要包含Azure Storage SDK,所有内容都是"绑定"的.它在我指定文件名时有效,但我的"WriteCustomFile"方法只写了一个名为"{name}"的文件
码:
class Program
{
static void Main(string[] args)
{
JobHost host = new JobHost();
host.Call(typeof(Program).GetMethod("WriteFile"));
host.Call(typeof(Program).GetMethod("WriteCustomFile"), new { name = "Helloworld1.txt" });
host.Call(typeof(Program).GetMethod("WriteCustomFile"), new { name = "Helloworld2.txt" });
host.Call(typeof(Program).GetMethod("WriteCustomFile"), new { name = "Helloworld3.txt" });
//host.RunAndBlock();
}
[NoAutomaticTrigger]
public static void WriteFile([Blob("container/foobar.txt")]TextWriter writer)
{
writer.WriteLine("Hello World..." + DateTime.UtcNow.ToShortDateString() + " - " + DateTime.UtcNow.ToShortTimeString());
}
[NoAutomaticTrigger]
public static void WriteCustomFile(string name, [Blob("container/{name}")] TextWriter writer)
{
writer.WriteLine("Hello World New ..." + name + ":" + DateTime.UtcNow.ToShortDateString() …Run Code Online (Sandbox Code Playgroud) azure ×5
asp.net-mvc ×2
xss ×2
asp.net ×1
c# ×1
deployment ×1
dnx ×1
git ×1
msbuild ×1
project.json ×1
webdeploy ×1
xunit ×1