小编Rob*_*sig的帖子

通过MSBuild和WebDeploy部署Azure网站,但使用哪些凭据?

我有一个非常简单的ASP.NET MVC 4应用程序,我可以通过WebDeploy轻松地将它发布到我的本地或内部IIS.

部署到Azure网站在我的本地计算机和Visual Studio上按预期工作:

  1. 转到Azure网站管理
  2. 转到仪表板
  3. 下载发布配置文件
  4. 在Visual Studio中导入它
  5. 发布

如果我通过命令行执行此操作,则会收到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部署无关.

有任何想法吗?

deployment msbuild azure webdeploy

19
推荐指数
1
解决办法
7781
查看次数

通过Git部署的计划Azure WebJob会导致按需作业

我有一个启用了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)


webjobs-list.json来源

在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)

webjob - 发布 - settings.json

正如您所看到的,"runMode"设置为"Scheduled",当我通过Visual Studio部署它时一切正常.

但是没有Visual Studio我得到了这个"按需"的WebJob: 在此输入图像描述

这是目前不支持或可能是什么问题?

完整的.sln可以在GitHub找到

git azure continuous-deployment azure-webjobs

14
推荐指数
2
解决办法
1869
查看次数

计划的Azure WebJob但未调用NoAutomaticTrigger-Method

此问题与此相关:运行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".

c# azure azure-webjobs

10
推荐指数
1
解决办法
7886
查看次数

如何在project.json和dotnet tfm世界中运行XUnit测试

背景:最近我从"旧"世界切换到新的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

这是目前不支持还是我错过了什么?谢谢!

xunit dnx project.json

8
推荐指数
1
解决办法
647
查看次数

标准的Html.DisplayTextFor()没有HTML编码吗?

我们目前正在处理一个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)

xss asp.net-mvc

7
推荐指数
1
解决办法
4077
查看次数

MvcHtmlString.ToHtmlString()不编码HTML?

与此问题相关,我在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)

输出编码< - 这是我怀疑的行为!

&lt;SCRIPT/XSS SRC=&quot;htpp://ha.ckers.org/css.js&quot;&gt;
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

asp.net xss asp.net-mvc

7
推荐指数
2
解决办法
1万
查看次数

Microsoft Graph:登录期间非管理员同意所需范围“User.ReadBasic.All”的“需要管理员批准”

我有以下设置:

具有应用程序注册的 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)

范围是:

  • 开放ID
  • 轮廓
  • 电子邮件
  • 用户.阅读
  • 离线访问
  • 用户.ReadBasic.All

我的测试用户位于 AAD 目录 B 中(并且没有任何特殊设置,只有管理员才能同意应用程序)。当我尝试登录我的应用程序时,结果如下:

在此输入图像描述

范围“User.ReadBasic.All”不需要管理员同意,但不知何故,当我删除此请求的范围时,用户可以在没有任何管理员同意的情况下登录到应用程序。

问题是:为什么管理员同意会显示在“User.ReadBasic.All”范围内?

目标是“普通”用户可以登录我们的应用程序,而无需麻烦管理员的租户广泛批准。对于“多租户”应用程序,“需要管理员同意”是否有所不同?

azure-active-directory microsoft-graph-api

5
推荐指数
1
解决办法
1万
查看次数

Azure 网站:“主页”位于 C 盘还是 D 盘?

我创建了一个新的 Azure 网站(代码部署),并通过 Kudu 站点注意到,文件现在位于C:\而不是D:\,例如,这是来自 Kudu 站点:

  • 站点文件夹:C:\home
  • 临时文件夹:C:\local\Temp\

一周前,我以为我所有的东西都位于D:\homeetc上。

我问这个问题是因为我们通过 Zip-Deployment 选项部署 WebJob,并且需要设置配置文件的绝对路径,该文件现在位于“错误”的驱动器上。

Kudu 文档也用于D:所有值。

最近这种情况有改变吗?这不是一个大问题,但我想了解为什么。

azure azure-web-app-service

5
推荐指数
1
解决办法
2458
查看次数

Azure Webjobs - 使用参数调用方法并调用绑定

我正在使用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 azure-webjobs

4
推荐指数
1
解决办法
5176
查看次数