传递不同的网络凭据以请求网页

时间:2017-11-24 04:21:47

标签: .net asp.net-mvc

我正在使用两个不同的应用程序(应用程序A和应用程序B),它们托管在两个不同的服务器上。应用程序A是普通用户应用程序,应用程序B仅用于查看SSRS报告。

现在,在应用程序A中我有一个页面,里面我已经在iframe中嵌入了应用程序B的URL,它将根据URL参数在iframe中加载报告。

此应用程序B具有高度安全性,仅允许一个用户(假设用户是肯定的)。因此,如果在不同的机器中访问应用程序A,那么该机器的凭据将作为网络凭证传递给应用程序A,以便获取特定的报告。但是应用程序B只允许特定用户通过访问被拒绝错误。

不允许应用程序B更改用户访问权限或更改任何代码。有什么方法可以解决这个问题吗?

有没有像我能够传递特殊凭证(用户surendra)的方式,而iframe请求应用程序B的URL以便授予访问权限并且任何用户都可以看到该报告,不依赖于用户' s机。

我可以将此凭据存储在应用程序A的配置详细信息中,并使用它们仅从应用程序B获取报告。

请让我知道其他任何工作。

1 个答案:

答案 0 :(得分:2)

除了在查询字符串中传递参数之外,iframe无法传递特定凭据。解决方案是让iframe请求在应用程序A中执行操作,在您可以使用所需网络凭据(surendra)从B请求报告的操作中,然后将结果返回到iframe。

E.g。更改应用程序A中的iframe:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <h3>Upload your images</h3>
  <input type="file" id="files" name="files[]" multiple /></br>
  <input type="submit" name="submit" value="Submit">
</div>

然后在应用程序A中添加一个Action,以使用所需的凭据从B获取报告。像:

>>> x = 13245
>>> abs(sum([int(n) * (1 if n in ['1','3','5','7','9'] else -1) for n in str(x)]))
3